Bagikan melalui


Mendapatkan perwakilan layanan yang ada

Mencantumkan perwakilan layanan

Jika Anda sudah memiliki perwakilan layanan yang sudah ada yang ingin Anda gunakan, langkah ini menjelaskan cara mengambil perwakilan layanan yang ada.

Daftar perwakilan layanan di penyewa dapat diambil dengan az ad sp list. Secara default, perintah ini menampilkan 100 perwakilan layanan pertama untuk penyewa Anda. Untuk mendapatkan semua perwakilan layanan penyewa, gunakan parameter --all. Diperlukan waktu yang lama untuk mengambil daftar ini, jadi sebaiknya Anda memfilter daftar dengan salah satu parameter berikut:

  • --display-name meminta perwakilan layanan yang memiliki awalan yang sesuai dengan nama yang disediakan. Nama tampilan perwakilan layanan adalah nilai yang ditetapkan dengan parameter --name selama pembuatan. Jika Anda tidak mengatur --name selama pembuatan perwakilan layanan, awalan namanya adalah azure-cli-.
  • --spn memfilter dengan pencocokan persis nama perwakilan layanan. Nama perwakilan layanan selalu dimulai dengan https://. jika nilai yang digunakan untuk --name bukan URI, nilai ini adalah https:// diikuti oleh nama tampilan.
  • --show-mine hanya meminta perwakilan layanan yang dibuat oleh pengguna yang masuk.
  • --filter mengambil filter OData, dan melakukan pemfilteran sisi server. Metode ini lebih direkomendasikan dari pemfilteran sisi klien dengan parameter --query CLI. Untuk mempelajari filter OData, lihat Sintaks ekspresi OData untuk filter.

Informasi yang ditampilkan untuk objek perwakilan layanan bersifat verbose. Untuk mendapatkan informasi yang diperlukan untuk masuk saja, gunakan string kueri [].{id:appId, tenant:appOwnerOrganizationId}. Berikut adalah contoh yang mendapatkan informasi masuk untuk semua perwakilan layanan yang dibuat oleh pengguna yang saat ini masuk:

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

Jika Anda bekerja di organisasi besar dengan banyak perwakilan layanan, coba contoh perintah ini:

# 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

Penting

Pengguna dan penyewa dapat diambil dengan az ad sp list dan az ad sp show, tetapi rahasia autentikasi atau metode autentikasi tidak tersedia. Rahasia untuk sertifikat di Azure Key Vault dapat diambil dengan az keyvault secret show, tetapi tidak ada rahasia lain yang disimpan secara default. Jika Anda lupa metode atau rahasia autentikasi, atur ulang info masuk perwakilan layanan.

Properti perwakilan layanan

Ketika Anda mendapatkan daftar perwakilan layanan menggunakan az ad sp list, ada banyak properti output yang dapat Anda referensikan dalam skrip Anda.

[
  {
    "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 Gunakan parameter untuk mengambil dan menyimpan properti perwakilan layanan dalam variabel.

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

Langkah berikutnya

Sekarang setelah Anda mempelajari cara mengambil perwakilan layanan yang ada, lanjutkan ke langkah berikutnya untuk mempelajari cara mengelola peran perwakilan layanan Anda.