Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Seznam služebních identit
Pokud už máte existující instanční objekt, který chcete použít, tento krok vysvětluje, jak načíst existující instanční objekt.
Seznam služebních identit v tenantovi lze načíst pomocí az ad sp list. Ve výchozím nastavení tento příkaz vrátí prvních 100 principálů služeb pro váš tenant. Pokud chcete získat všechny služební identity tenanta, použijte parametr --all. Získání tohoto seznamu může trvat dlouho, proto doporučujeme seznam filtrovat jedním z následujících parametrů:
-
--display-namepožaduje instanční objekty, které mají předponu odpovídající zadanému názvu. Zobrazovaný název služebního principálu je hodnota nastavená parametrem--nameběhem vytváření. Pokud jste při vytváření zástupce služby nenastavili--name, předpona názvu jeazure-cli-. -
--spnfiltruje přesnou shodu názvu hlavní služby. Název služebního principu vždy začíná shttps://. Pokud hodnota, kterou jste použili pro--name, nebyla URI, zobrazovaný název následujehttps://. -
--show-minepožaduje pouze služební identity vytvořené přihlášeným uživatelem. -
--filterpřebírá filtr OData a provádí filtrování na straně serveru. Tato metoda se doporučuje oproti filtrování na straně klienta s parametrem--querypříkazového řádku. Informace o filtrech OData najdete v tématu Syntaxe výrazů OData pro filtry.
Informace vrácené pro objekty služby jsou podrobné. Pokud chcete získat pouze informace potřebné pro přihlášení, použijte řetězec [].{id:appId, tenant:appOwnerOrganizationId}dotazu . Tady je příklad, který získá přihlašovací informace pro všechny služební principály vytvořené aktuálně přihlášeným uživatelem:
az ad sp list --show-mine --query "[].{SPname:displayName, SPid:appId, tenant:appOwnerOrganizationId}" --output table
Pokud pracujete ve velké organizaci s mnoha služebními principály, vyzkoušejte tyto příklady příkazů:
# 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
Důležité
Uživatele i nájemce je možné načíst pomocí příkazu az ad sp list a az ad sp show, ale tajné kódy ověřování ani metoda ověřování nejsou k dispozici. Tajné kódy pro certifikáty ve službě Azure Key Vault je možné načíst pomocí příkazu az keyvault secret show, ale ve výchozím nastavení se neukládají žádné další tajné kódy. Pokud zapomenete metodu ověřování nebo tajný klíč, obnovte přihlašovací údaje servisního principálu.
Vlastnosti služebního objektu
Když získáte seznam instančních objektů pomocí az ad sp list, existuje mnoho výstupních vlastností, na které můžete ve skriptu odkazovat.
[
{
"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
}
}
]
Pomocí parametru --query načtěte a uložte vlastnosti service principalu do proměnných.
# 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"
Další kroky
Teď, když jste se naučili, jak načíst existující principál služby, přejděte k dalšímu kroku, abyste se naučili, jak spravovat role principálu služby.