Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
En app måste registreras i Microsoft Entra ID innan Microsofts identitetsplattform kan ge den behörighet att komma åt data som lagras i Microsoft Entra eller Microsoft 365 klienter. Det här villkoret gäller för appar som du utvecklar själv, som din klientorganisation äger eller som du får åtkomst till via en aktiv prenumeration.
Många inställningar för appar registreras som objekt som kan nås, uppdateras eller tas bort med hjälp av Microsoft Entra PowerShell. Dessa objekt omfattar program, tjänstens huvudnamn och approlltilldelningar.
I den här artikeln får du lära dig att hantera appregistreringar och tjänsthuvudobjekt med hjälp av Microsoft Entra PowerShell. Den omfattar registrering av program, konfiguration av egenskaper, tilldelning av behörigheter och hantering av appägarskap.
Förutsättningar
Om du vill hantera appar med Microsoft Entra PowerShell behöver du:
- Ett Microsoft Entra användarkonto. Om du inte redan har ett konto kan du skapa ett konto kostnadsfritt.
- En av följande roller:
- Ge dig själv den minst privilegierade delegerade behörighet som anges för åtgärden.
- Microsoft Entra PowerShell-modul installerad. Följ modulguiden Installera Microsoft Entra PowerShell för att installera modulen.
Registrera en app
Följande begäran skapar en app genom att endast ange den obligatoriska displayName egenskapen.
Connect-Entra -Scopes 'Application.ReadWrite.All'
New-EntraApplication -DisplayName 'My new application'
DisplayName Id AppId SignInAudience PublisherDomain
----------- -- ----- -------------- -----------
My new application aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb bbbbbbbb-1111-2222-3333-cccccccccccc MyOrg
Programmet tilldelas ett ID som är unikt för appar i klientorganisationen och ett appId som är globalt unikt i Microsoft Entra ekosystemet.
Skapa ett huvudnamn för tjänsten för ett program
Connect-Entra -Scopes 'Application.ReadWrite.All'
$myApp = Get-EntraApplication -Filter "DisplayName eq 'My new application'"
New-EntraServicePrincipal -AppId $myApp.AppId -DisplayName 'My new service principal'
DisplayName Id AppId SignInAudience ServicePrincipalType
----------- -- ----- -------------- --------------------
My new application bbbbbbbb-1111-2222-3333-cccccccccccc 00001111-aaaa-2222-bbbb-3333cccc4444 MyOrg Application
Konfigurera grundläggande egenskaper för din app
Du kan konfigurera flera egenskaper för din app. I följande exempel visas hur du uppdaterar visningsnamnet för ett program.
Connect-Entra -Scopes 'Application.ReadWrite.All'
$application = Get-EntraApplication -Filter "DisplayName eq 'My new application'"
Set-EntraApplication -ApplicationId $application.Id -DisplayName 'Contoso application'
Du kan också använda pipelining för att uppdatera egenskaperna för ett program.
Connect-Entra -Scopes 'Application.ReadWrite.All'
Get-EntraApplication -Filter "DisplayName eq 'My new application'" | Set-EntraApplication -DisplayName 'Contoso application'
Mer information finns i Set-EntraApplication.
Begränsa appinloggning till endast tilldelade identiteter
Att begränsa appinloggningar till endast tilldelade identiteter med hjälp av Microsoft Entra PowerShell säkerställer att endast behöriga användare kan komma åt dina program, vilket ökar säkerheten och kontrollen.
Connect-Entra -Scopes 'Application.ReadWrite.All'
$application = Get-EntraApplication -Filter "DisplayName eq 'My new application'"
Set-EntraServicePrincipal -ServicePrincipalId $application.Id -AppRoleAssignmentRequired $true
Tilldela behörigheter till en app
Du tilldelar behörigheter till en app via Microsoft Entra administrationscenter eller med hjälp av Microsoft Entra PowerShell. I PowerShell uppdaterar du appens requiredResourceAccess egenskap, inklusive både befintliga och nya behörigheter. Om du bara skickar nya behörigheter tas alla befintliga behörigheter bort som inte godkänns.
Tilldelning av behörigheter beviljar dem inte automatiskt till appen. Du måste fortfarande bevilja administratörsmedgivande med hjälp av Microsoft Entra administrationscenter.
Connect-Entra -Scopes 'Application.ReadWrite.All'
$application = Get-EntraApplication -Filter "DisplayName eq 'My new application'"
$requiredResourceAccess = @(
@{resourceAppId = '00000003-0000-0000-c000-000000000000'
resourceAccess = @(
@{
id = 'c79f8feb-a9db-4090-85f9-90d820caa0eb'
type = 'Scope'
}
@{
id = '9a5d68dd-52b0-4cc2-bd40-abcf44ac3a30'
type = 'Role'
} )
})
Set-EntraApplication -ApplicationId $application.Id -RequiredResourceAccess $requiredResourceAccess
Hantera ägare
Hämta ägaren till ett huvudnamn för tjänsten
Connect-Entra -Scopes 'Application.ReadWrite.All'
$servicePrincipal = Get-EntraServicePrincipal -Filter "displayName eq 'Helpdesk Application'"
Get-EntraServicePrincipalOwner -ServicePrincipalId $servicePrincipal.Id -All | Select-Object Id, DisplayName, '@odata.type'
Du kan också använda pipelining för att hämta tjänstens huvudnamns ägare.
Get-EntraServicePrincipal -Filter "displayName eq 'Helpdesk Application'" | Get-EntraServicePrincipalOwner | Select-Object Id, DisplayName, '@odata.type'
Tilldela en ägare till ett huvudnamn för tjänsten
Connect-Entra -Scopes 'Application.ReadWrite.All', 'Application.ReadWrite.OwnedBy'
$servicePrincipal = Get-EntraServicePrincipal -Filter "displayName eq 'Helpdesk Application'"
$owner = Get-EntraUser -UserId 'SawyerM@contoso.com'
Add-EntraServicePrincipalOwner -ServicePrincipalId $servicePrincipal.Id -OwnerId $owner.Id
Det här exemplet visar hur du lägger till en ägare till tjänstens huvudnamn.
-
-ServicePrincipalId– anger den unika identifieraren (ObjectId) för tjänstens huvudnamn som du vill lägga till en ägare till. -
-OwnerId– anger den unika identifieraren (ObjectId) för den användare eller grupp som du vill lägga till som ägare till det angivna tjänstens huvudnamn.
Hämta en lista över alla program utan användartilldelning
Använd följande kommando för att hämta en lista över alla program som inte kräver användartilldelning.
Connect-Entra -Scopes 'Application.ReadWrite.All'
Get-EntraServicePrincipal -All | Where-Object {$_.appRoleAssignmentRequired -ne 'True'}
DisplayName Id AppId SignInAudience ServicePrincipalType
----------------------------------- ----------------------------------- --------------------------------- ----------------- ------------------
Microsoft password reset service 00aa00aa-bb11-cc22-dd33-44ee44ee44ee 93625bc8-bfe2-437a-97e0-3d0060024faa AzureADMultipleOrgs Application
Microsoft.Azure.SyncFabric 11bb11bb-cc22-dd33-ee44-55ff55ff55ff 00000014-0000-0000-c000-000000000000 AzureADMultipleOrgs Application
Azure Security Insights 22cc22cc-dd33-ee44-ff55-66aa66aa66aa 98785600-1bb7-4fb9-b9fa-19afe2c8a360 AzureADMultipleOrgs Application
Hämta objekt som ägs av eller har skapats av ett tjänsthuvudnamn
Objekt som skapats av tjänsthuvudnamn
Connect-Entra -Scopes 'Application.Read.All'
$servicePrincipal = Get-EntraServicePrincipal -Filter "displayName eq 'Helpdesk Application'"
Get-EntraServicePrincipalCreatedObject -ServicePrincipalId $servicePrincipal.Id
Objekt som ägs av ett service principal
Connect-Entra -Scopes 'Application.Read.All'
$servicePrincipal = Get-EntraServicePrincipal -Filter "displayName eq 'Helpdesk Application'"
Get-EntraServicePrincipalOwnedObject -ServicePrincipalId $servicePrincipal.Id -All | Select-Object Id, DisplayName, '@odata.type'
Program med hemligheter och certifikat som håller på att gå ut
Upphörande av programhemligheter eller lösenord
$expirationThreshold = (Get-Date).AddDays(30)
$appsWithExpiringPasswords = Get-EntraApplication -All | Where-Object { $_.PasswordCredentials } |
ForEach-Object {
$app = $_
$app.PasswordCredentials | Where-Object { $_.EndDate -le $expirationThreshold } |
ForEach-Object {
[PSCustomObject]@{
DisplayName = $app.DisplayName
AppId = $app.AppId
SecretDisplayName = $_.DisplayName
KeyId = $_.KeyId
ExpiringSecret = $_.EndDate
}
}
}
$appsWithExpiringPasswords | Format-Table DisplayName, AppId, SecretDisplayName, KeyId, ExpiringSecret -AutoSize
Certifikat som upphör att gälla
$expirationThreshold = (Get-Date).AddDays(30)
$appsWithExpiringKeys = Get-EntraApplication -All | Where-Object { $_.KeyCredentials } |
ForEach-Object {
$app = $_
$app.KeyCredentials | Where-Object { $_.EndDate -le $expirationThreshold } |
ForEach-Object {
[PSCustomObject]@{
DisplayName = $app.DisplayName
AppId = $app.AppId
CertificateDisplayName = $_.DisplayName
KeyId = $_.KeyId
ExpiringKeys = $_.EndDate
}
}
}
$appsWithExpiringKeys | Format-Table DisplayName, AppId, CertificateDisplayName, KeyId, ExpiringKeys -AutoSize