Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eine App muss in Microsoft Entra ID registriert werden, bevor die Microsoft-Identitätsplattform sie zum Zugriff auf Daten autorisieren kann, die in Mandanten von Microsoft Entra oder Microsoft 365 gespeichert sind. Diese Bedingung gilt für Apps, die Sie selbst entwickeln, die Ihr Mandant besitzt oder auf die Sie über ein aktives Abonnement zugreifen.
Viele Einstellungen für Apps werden als Objekte aufgezeichnet, auf die mithilfe von Microsoft Entra PowerShell zugegriffen, aktualisiert oder gelöscht werden kann. Zu diesen Objekten gehören Anwendungen, Dienstprinzipale und App-Rollenzuweisungen.
In diesem Artikel erfahren Sie, wie Sie App-Registrierungen und Dienstprinzipalobjekte mithilfe von Microsoft Entra PowerShell verwalten. Es umfasst das Registrieren von Anwendungen, das Konfigurieren von Eigenschaften, das Zuweisen von Berechtigungen und das Verwalten des App-Besitzes.
Voraussetzungen
Um Apps mit Microsoft Entra PowerShell zu verwalten, benötigen Sie Folgendes:
- Ein Microsoft Entra Benutzerkonto. Falls Sie noch über keins verfügen, können Sie ein kostenloses Konto erstellen.
- Eine der folgenden Rollen:
- Erteilen Sie sich die für den Vorgang angegebene delegierte Berechtigung mit den geringstmöglichen Rechten.
- Microsoft Entra PowerShell-Modul installiert. Folgen Sie der Anleitung zum Installieren Microsoft Entra PowerShell-Moduls, um das Modul zu installieren.
Registrieren einer Anwendung
Die folgende Anforderung erstellt eine App, indem nur die erforderliche displayName Eigenschaft angegeben wird.
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
Der Anwendung wird eine ID zugewiesen, die innerhalb des Mandanten für Apps eindeutig ist, und eine appId, die im Microsoft-Entra-Ökosystem global eindeutig ist.
Erstellen Sie einen Dienstprinzipal für eine Anwendung
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
Konfigurieren grundlegender Eigenschaften für Ihre App
Sie können mehrere Eigenschaften für Ihre App konfigurieren. Das folgende Beispiel zeigt, wie der Anzeigename einer Anwendung aktualisiert wird.
Connect-Entra -Scopes 'Application.ReadWrite.All'
$application = Get-EntraApplication -Filter "DisplayName eq 'My new application'"
Set-EntraApplication -ApplicationId $application.Id -DisplayName 'Contoso application'
Alternativ können Sie pipelining verwenden, um Die Eigenschaften einer Anwendung zu aktualisieren.
Connect-Entra -Scopes 'Application.ReadWrite.All'
Get-EntraApplication -Filter "DisplayName eq 'My new application'" | Set-EntraApplication -DisplayName 'Contoso application'
Weitere Informationen finden Sie unter Set-EntraApplication.
Beschränken der App-Anmeldung auf nur zugewiesene Identitäten
Durch das Einschränken von App-Anmeldungen auf nur zugewiesene Identitäten mithilfe von Microsoft Entra PowerShell wird sichergestellt, dass nur autorisierte Benutzer auf Ihre Anwendungen zugreifen können, wodurch Sicherheit und Kontrolle verbessert werden.
Connect-Entra -Scopes 'Application.ReadWrite.All'
$application = Get-EntraApplication -Filter "DisplayName eq 'My new application'"
Set-EntraServicePrincipal -ServicePrincipalId $application.Id -AppRoleAssignmentRequired $true
Zuweisen von Berechtigungen zu einer App
Sie weisen einer App Berechtigungen über die Microsoft Entra Admin Center oder mithilfe von Microsoft Entra PowerShell zu. In PowerShell aktualisieren Sie die Eigenschaft der App requiredResourceAccess , einschließlich vorhandener und neuer Berechtigungen. Wenn nur neue Berechtigungen übergeben werden, werden alle bestehenden Berechtigungen entfernt, denen nicht zugestimmt wurde.
Durch das Zuweisen von Berechtigungen werden diese der App nicht automatisch erteilt. Sie müssen weiterhin die Administratorzustimmung über die Microsoft Entra Admin Center erteilen.
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
Verwalten von Besitzern
Den Besitzer eines Dienstprinzipals abrufen
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'
Alternativ können Sie Pipelining verwenden, um den Besitzer des Dienstprinzipals abzurufen.
Get-EntraServicePrincipal -Filter "displayName eq 'Helpdesk Application'" | Get-EntraServicePrincipalOwner | Select-Object Id, DisplayName, '@odata.type'
Zuweisen eines Besitzers zu einem Dienstprinzipal
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
In diesem Beispiel wird gezeigt, wie Sie einem Dienstprinzipal einen Besitzer hinzufügen.
-
-ServicePrincipalId- Gibt den eindeutigen Bezeichner (ObjectId) des Dienstprinzipals an, dem Sie einen Besitzer hinzufügen möchten. -
-OwnerId- Gibt den eindeutigen Bezeichner (ObjectId) des Benutzers oder der Gruppe an, den Sie als Besitzer des angegebenen Dienstprinzipals hinzufügen möchten.
Abrufen einer Liste aller Anwendungen ohne Benutzerzuweisung
Verwenden Sie den folgenden Befehl, um eine Liste aller Anwendungen abzurufen, die keine Benutzerzuweisung erfordern.
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
Abrufen von Objekten, die sich im Besitz eines Dienstprinzipals befinden oder von diesem erstellt wurden
Von einem Dienstprinzipal erstellte Objekte
Connect-Entra -Scopes 'Application.Read.All'
$servicePrincipal = Get-EntraServicePrincipal -Filter "displayName eq 'Helpdesk Application'"
Get-EntraServicePrincipalCreatedObject -ServicePrincipalId $servicePrincipal.Id
Objekte, die einem Dienstprinzipal gehören
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'
Anwendungen mit ablaufenden geheimen Schlüsseln und Zertifikaten
Ablaufende Anwendungsgeheimnisse oder Kennwörter
$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
Ablaufende Zertifikate
$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