Udostępnij przez


Uzyskaj istniejącą jednostkę usługi

Lista zasad usługi

Jeśli masz już istniejącą wersję zasad usługi, której chcesz użyć, w tym kroku pokazano, jak ją pobrać.

Listę jednostek usługi w dzierżawie można pobrać za pomocą polecenia az ad sp list. Domyślnie to polecenie zwraca pierwsze 100 głównych usług w dzierżawcy. Aby uzyskać wszystkie główne obiekty usługi dzierżawcy, użyj parametru --all. Pobranie tej listy może zająć dużo czasu, dlatego zaleca się filtrowanie listy przy użyciu jednego z następujących parametrów:

  • --display-name żąda jednostek usługi, które mają prefiks zgodny z podaną nazwą. Nazwa wyświetlana jednostki usługi to wartość ustawiona za pomocą parametru --name podczas tworzenia. Jeśli podczas tworzenia podmiotu usługi nie ustawiono --name, prefiks nazwy to azure-cli-.
  • --spn filtruje na podstawie dokładnego dopasowania nazwy głównej usługi. Nazwa główna usługi zawsze zaczyna się od https://. Jeśli wartość, której użyłeś dla --name nie była identyfikatorem URI, po tej wartości, następuje https:// nazwa wyświetlana.
  • --show-mine żąda tylko dostępu do obiektów serwisowych utworzonych przez użytkownika, który się zalogował.
  • --filter pobiera filtr OData i wykonuje filtrowanie po stronie serwera . Ta metoda jest zalecana zamiast filtrowania po stronie klienta przy użyciu parametru --query interfejsu wiersza polecenia. Aby dowiedzieć się więcej o filtrach OData, zobacz Składnia wyrażeń OData dla filtrów.

Informacje zwracane dla obiektów głównych usługi są rozbudowane. Aby uzyskać tylko informacje niezbędne do logowania, użyj ciągu [].{id:appId, tenant:appOwnerOrganizationId}zapytania . Oto przykład, który pobiera informacje o logowaniu dla wszystkich głównych usług utworzonych przez aktualnie zalogowanego użytkownika.

az ad sp list --show-mine --query "[].{SPname:displayName, SPid:appId, tenant:appOwnerOrganizationId}" --output table

Jeśli pracujesz w dużej organizacji, która ma wiele głównych usług, wypróbuj następujące przykłady poleceń:

# 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

Ważne

Użytkownik i dzierżawca mogą być pobrani za pomocą az ad sp list i az ad sp show, ale tajne dane lub metoda uwierzytelniania nie są dostępne. Sekrety dla certyfikatów w usłudze Azure Key Vault można pobrać za pomocą az keyvault secret show, ale żadne inne sekrety nie są domyślnie przechowywane. Jeśli zapomnisz metodę uwierzytelniania lub sekret, zresetuj poświadczenia jednostki usługi.

Właściwości obiektu usługi

Po pobraniu listy jednostek usługi przy użyciu az ad sp list, istnieje wiele właściwości wyjściowych, do których można się odwołać w skrypcie.

[
  {
    "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
    }
  }
]

Użyj parametru , --query aby pobrać i zapisać właściwości jednostki usługi w zmiennych.

# 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"

Dalsze kroki

Teraz, gdy już wiesz, jak uzyskać istniejący główny element usługi, przejdź do następnego kroku, aby dowiedzieć się, jak zarządzać rolami głównego elementu usługi.