Získání existujícího instančního objektu
Výpis instančních objektů
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 instančních objektů v tenantovi lze načíst pomocí příkazu az ad sp list. Ve výchozím nastavení tento příkaz vrátí prvních 100 instančních objektů pro vašeho tenanta. Pokud chcete získat všechny instanční objekty tenanta, použijte --all
parametr. Získání tohoto seznamu může trvat dlouho, proto doporučujeme seznam filtrovat jedním z následujících parametrů:
--display-name
požaduje instanční objekty, které mají předponu odpovídající zadanému názvu. Zobrazovaný název instančního objektu je hodnota nastavená parametrem--name
během vytváření. Pokud jste nenastavili--name
během vytváření instančního objektu, jeazure-cli-
předpona názvu .--spn
filtruje přesnou shodu názvu instančního objektu. Název instančního objektu vždy začíná nahttps://
. Pokud hodnota, pro kterou jste použili--name
, nebyla identifikátorem URI, následujehttps://
zobrazovaný název.--show-mine
požaduje pouze instanční objekty vytvořené přihlášeným uživatelem.--filter
přebírá filtr OData a provádí filtrování na straně serveru. Tato metoda se doporučuje při filtrování na straně klienta s parametrem rozhraní příkazového--query
řádku. Informace o filtrech OData najdete v tématu Syntaxe výrazů OData pro filtry.
Informace vrácené pro instanční objekty 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 instanční objekty 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 instančními objekty, 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 tenanta je možné načíst pomocí příkazu az ad sp list i az ad sp show, ale tajné kódy ověřování nebo 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íč, resetujte přihlašovací údaje instančního objektu.
Vlastnosti instanční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
můžete načíst a uložit vlastnosti instančního objektu v 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 dozvěděli, jak načíst existující instanční objekt, přejděte k dalšímu kroku a zjistěte, jak spravovat role instančního objektu.