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-namepož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, je azure-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á na https://. Pokud hodnota, pro kterou jste použili --name , nebyla identifikátorem URI, následuje https:// 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.