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 adalahazure-cli-
.--spn
memfilter dengan pencocokan persis nama perwakilan layanan. Nama perwakilan layanan selalu dimulai denganhttps://
. jika nilai yang digunakan untuk--name
bukan URI, nilai ini adalahhttps://
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.