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.
Dienstprinzipale auflisten
Wenn Sie bereits über einen vorhandenen Dienstprinzipal verfügen, den Sie verwenden möchten, wird in diesem Schritt erklärt, wie Sie Ihren vorhandenen Dienstprinzipal abrufen.
Mit az ad sp list kann eine Liste der Dienstprinzipale in einem Mandanten abgerufen werden. Dieser Befehl gibt standardmäßig die ersten 100 Dienstprinzipale für Ihren Mandanten zurück. Verwenden Sie zum Abrufen aller Dienstprinzipale eines Mandanten den Parameter --all
. Da das Abrufen dieser Liste sehr lange dauern kann, wird empfohlen, die Liste mit einem der folgenden Parameter zu filtern:
-
--display-name
fordert Dienstprinzipale mit einem Präfix an, das dem angegebenen Namen entspricht. Der Anzeigename eines Dienstprinzipals ist der Wert, der während der Erstellung mit dem Parameter--name
festgelegt wird. Wenn Sie--name
während der Erstellung des Dienstprinzipal nicht festgelegt haben, lautet das Namenspräfixazure-cli-
. -
--spn
filtert nach genauer Übereinstimmung des Dienstprinzipalnamens. Der Dienstprinzipalname beginnt immer mithttps://
. Handelte es sich bei dem für--name
verwendeten Wert nicht um einen URI, wird für diesen Werthttps://
gefolgt vom Anzeigenamen verwendet. -
--show-mine
fordert nur Dienstprinzipale an, die vom angemeldeten Benutzer erstellt wurden. -
--filter
akzeptiert einen OData-Filter und führt die serverseitige Filterung aus. Diese Methode wird anstelle der clientseitigen Filterung mit dem Parameter--query
der CLI empfohlen. Weitere Informationen zu OData-Filtern finden Sie unter OData-Ausdruckssyntax für Filter.
Für Dienstprinzipalobjekte werden ausführliche Informationen zurückgegeben. Verwenden Sie die Abfragezeichenfolge [].{id:appId, tenant:appOwnerOrganizationId}
, um nur die für die Anmeldung erforderlichen Informationen abzurufen. Hier finden Sie ein Beispiel für das Abrufen der Anmeldeinformationen für alle Dienstprinzipale, die von der/dem derzeit angemeldeten Benutzer*in erstellt wurden:
az ad sp list --show-mine --query "[].{SPname:displayName, SPid:appId, tenant:appOwnerOrganizationId}" --output table
Wenn Sie in einer großen Organisation mit vielen Dienstprinzipalen arbeiten, probieren Sie die folgenden Befehlsbeispiele aus:
# get service principals containing a keyword
az ad sp list --display-name mySearchWord --output table
# get service principals using an OData filter
az ad sp list --filter "displayname eq 'myExactServicePrincipalName'" --output json
# get a service principal having a certain servicePrincipalNames property value
az ad sp list --spn https://spURL.com
Von Bedeutung
Der Benutzer und der Mandant können sowohl mit az ad sp list als auch mit az ad sp show abgerufen werden, aber Authentifizierungsgeheimnisse oder die Authentifizierungsmethode sind nicht verfügbar. Geheimnisse für Zertifikate in Azure Key Vault können mit az keyvault secret show abgerufen werden. Andere Geheimnisse werden jedoch nicht standardmäßig gespeichert. Wenn Sie eine Authentifizierungsmethode oder ein Geheimnis vergessen haben, setzen Sie die Anmeldeinformationen des Diensthauptkontos zurück.
Eigenschaften von Dienstprinzipalen
Wenn Sie mit az ad sp list
eine Liste von Dienstprinzipalen erhalten, gibt es viele Ausgabeeigenschaften, auf die Sie in Ihrem Skript verweisen können.
[
{
"accountEnabled": true,
"addIns": [],
"alternativeNames": [],
"appDescription": null,
"appDisplayName": "myServicePrincipalName",
"appId": "00000000-0000-0000-0000-000000000000",
"appOwnerOrganizationId": "00000000-0000-0000-0000-000000000000",
"appRoleAssignmentRequired": false,
"appRoles": [],
"applicationTemplateId": null,
"createdDateTime": null,
"deletedDateTime": null,
"description": null,
"disabledByMicrosoftStatus": null,
"displayName": "myServicePrincipalName",
"homepage": "https://myURL.com",
"id": "00000000-0000-0000-0000-000000000000",
"info": {
"logoUrl": null,
"marketingUrl": null,
"privacyStatementUrl": null,
"supportUrl": null,
"termsOfServiceUrl": null
},
"keyCredentials": [],
"loginUrl": null,
"logoutUrl": null,
"notes": null,
"notificationEmailAddresses": [],
"oauth2PermissionScopes": [
{
"adminConsentDescription": "my admin description",
"adminConsentDisplayName": "my admin display name",
"id": "00000000-0000-0000-0000-000000000000",
"isEnabled": true,
"type": "User",
"userConsentDescription": "my user description",
"userConsentDisplayName": "my user display name",
"value": "user_impersonation"
}
],
"passwordCredentials": [],
"preferredSingleSignOnMode": null,
"preferredTokenSigningKeyThumbprint": null,
"replyUrls": [],
"resourceSpecificApplicationPermissions": [],
"samlSingleSignOnSettings": null,
"servicePrincipalNames": [
"00000000-0000-0000-0000-000000000000",
"https://myURL.com"
],
"servicePrincipalType": "Application",
"signInAudience": null,
"tags": [
"WindowsAzureActiveDirectoryIntegratedApp"
],
"tokenEncryptionKeyId": null,
"verifiedPublisher": {
"addedDateTime": null,
"displayName": null,
"verifiedPublisherId": null
}
}
]
Verwenden Sie den --query
-Parameter, um Dienstprinzipaleigenschaften in Variablen abzurufen und zu speichern.
# Bash script
spID=$(az ad sp list --display-name myServicePrincipalName --query "[].{spID:appId}" --output tsv)
tenantID=$(az ad sp list --display-name myServicePrincipalName --query "[].{tenant:appOwnerOrganizationId}" --output tsv)
userConsentDescr=$(az ad sp list --display-name myServicePrincipalName --query "[].{ucs:oauth2PermissionScopes.userConsentDescription[0]}" --output tsv)
echo "Using appId $spID in tenant $tenantID for $userConsentDescr"
Nächste Schritte
Nachdem Sie nun gelernt haben, wie Sie Ihren vorhandenen Dienstprinzipal abrufen können, fahren Sie mit dem nächsten Schritt fort, um zu erfahren, wie Sie Ihre Dienstprinzipalrollen verwalten.