Aracılığıyla paylaş


Mevcut hizmet sorumlusunu alma

Hizmet sorumlularını listeleme

Kullanmak istediğiniz bir hizmet sorumlunuz zaten varsa, bu adımda mevcut hizmet sorumluğunuza nasıl erişileceğini açıklıyoruz.

Kiracıdaki hizmet sorumlularının listesi az ad sp list ile alınabilir. Varsayılan olarak bu komut kiracınız için ilk 100 hizmet sorumlusunu döndürür. Kiracının tüm hizmet sorumlularını almak için parametresini --all kullanın. Bu listeyi almak uzun sürebilir, bu nedenle listeyi aşağıdaki parametrelerden biriyle filtrelemeniz önerilir:

  • --display-name sağlanan adla eşleşen bir ön eke sahip hizmet sorumlularını istemektedir. Hizmet sorumlusunun görünen adı, oluşturma sırasında parametresiyle --name ayarlanan değerdir. Hizmet sorumlusu oluşturma sırasında --name ayarlamadıysanız, ad ön eki azure-cli- olur.
  • --spn tam hizmet sorumlusu adı eşleştirmesi filtrelerini kullanın. Hizmet asıl adı her zaman ile https://başlar. kullandığınız --name değeri bir URI değilse, bu değer https:// ve ardından görünen adı takip eder.
  • --show-mine yalnızca oturum açmış kullanıcı tarafından oluşturulan hizmet sorumlularını istemektedir.
  • --filter bir OData filtresi alır ve sunucu tarafı filtreleme gerçekleştirir. Bu yöntem, CLI --query parametresiyle istemci tarafı filtrelemesi üzerinden önerilir. OData filtreleri hakkında bilgi edinmek için bkz. Filtreler için OData ifadesi söz dizimi.

Hizmet ilkesi nesneleri için döndürülen bilgiler ayrıntılıdır. Yalnızca oturum açmak için gerekli bilgileri almak için sorgu dizesini [].{id:appId, tenant:appOwnerOrganizationId}kullanın. Şu anda oturum açmış olan kullanıcı tarafından oluşturulan tüm hizmet sorumluları için oturum açma bilgilerini alan bir örnek aşağıda verilmiştir:

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

Çok sayıda hizmet sorumlusu olan büyük bir kuruluşta çalışıyorsanız şu komut örneklerini deneyin:

# 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

Önemli

Kullanıcı ve kiracı az ad sp list ve az ad sp show ile alınabilir, ancak kimlik doğrulama sırları veya kimlik doğrulama yöntemi mevcut değildir. Azure Key Vault'taki sertifikaların gizli dizileri az keyvault secret show ile alınabilir, ancak varsayılan olarak başka hiçbir gizli dizi depolanmaz. Bir kimlik doğrulama yöntemini veya gizli bilgiyi unutursanız, hizmet sorumlusu kimlik bilgilerini sıfırlayın.

Hizmet ilkesi özellikleri

az ad sp list kullanarak hizmet sorumlusunun listesini aldığınızda, scriptinizde kullanabileceğiniz birçok çıkış özelliği vardır.

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

--query parametresini, hizmet sorumlusu özelliklerini almak ve depolamak için değişkenlerde kullanın.

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

Sonraki Adımlar

Mevcut hizmet sorumlunuzu nasıl alacağınızı öğrendiğinize göre, hizmet sorumlusu rollerinizi yönetmeyi öğrenmek için sonraki adıma geçin.