Uzyskiwanie istniejącej jednostki usługi
Wyświetlanie listy jednostek usługi
Jeśli masz już istniejącą jednostkę usługi, której chcesz użyć, w tym kroku wyjaśniono, jak pobrać istniejącą jednostkę usługi.
Listę jednostek usługi w dzierżawie można pobrać za pomocą polecenia az ad sp list. Domyślnie to polecenie zwraca pierwsze 100 jednostek usługi dla dzierżawy. Aby uzyskać wszystkie jednostki usługi dzierżawy, 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 jednostki usługi nie ustawiono--name
wartości , prefiks nazwy toazure-cli-
.--spn
filtruje dokładne dopasowanie nazwy głównej usługi. Nazwa główna usługi zawsze zaczyna się odhttps://
. Jeśli wartość użyta dla--name
elementu nie była identyfikatorem URI, po tej wartości następujehttps://
nazwa wyświetlana.--show-mine
żąda tylko jednostek usługi utworzonych przez zalogowanego użytkownika.--filter
pobiera filtr OData i wykonuje filtrowanie po stronie serwera. Ta metoda jest zalecana w przypadku filtrowania po stronie klienta przy użyciu parametru interfejsu--query
wiersza polecenia. Aby dowiedzieć się więcej o filtrach OData, zobacz Składnia wyrażeń OData dla filtrów.
Informacje zwracane dla obiektów jednostki usługi są pełne. Aby uzyskać tylko informacje niezbędne do logowania, użyj ciągu [].{id:appId, tenant:appOwnerOrganizationId}
zapytania . Oto przykład, który pobiera informacje logowania dla wszystkich jednostek usługi 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 z wieloma jednostkami usługi, 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żawa mogą być pobierane za pomocą polecenia az ad sp list i az ad sp show, ale wpisy tajne uwierzytelniania lub metoda uwierzytelniania nie są dostępne. Wpisy tajne dla certyfikatów w usłudze Azure Key Vault można pobrać za pomocą polecenia az keyvault secret show, ale żadne inne wpisy tajne nie są domyślnie przechowywane. Jeśli zapomnisz metodę uwierzytelniania lub wpis tajny, zresetuj poświadczenia jednostki usługi.
Właściwości jednostki usługi
Po pobraniu listy jednostek usługi przy użyciu programu az ad sp list
istnieje wiele właściwości wyjściowych, do których można się odwołać w skryscie.
[
{
"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"
Następne kroki
Teraz, gdy wiesz już, jak pobrać istniejącą jednostkę usługi, przejdź do następnego kroku, aby dowiedzieć się, jak zarządzać rolami jednostki usługi.