Hämta ett befintligt tjänsthuvudnamn
Lista tjänstens huvudnamn
Om du redan har ett befintligt huvudnamn för tjänsten som du vill använda förklarar det här steget hur du hämtar det befintliga tjänstens huvudnamn.
En lista över tjänstens huvudnamn i en klientorganisation kan hämtas med az ad sp-listan. Som standard returnerar det här kommandot de första 100 huvudnamnen för tjänsten för klientorganisationen. Använd parametern --all
för att hämta alla klientorganisationens tjänsthuvudnamn. Det kan ta lång tid att hämta den här listan, så vi rekommenderar att du filtrerar listan med någon av följande parametrar:
--display-name
begär tjänstens huvudnamn som har ett prefix som matchar det angivna namnet. Visningsnamnet för tjänstens huvudnamn är värdet som anges med parametern--name
när du skapar. Om du inte angav--name
när tjänstens huvudnamn skapades ärazure-cli-
namnprefixet .--spn
filter för exakt matchning av tjänstens huvudnamn. Tjänstens huvudnamn börjar alltid medhttps://
. Om värdet du använde för--name
inte var en URI följs det här värdethttps://
av visningsnamnet.--show-mine
begär endast tjänstens huvudnamn som skapats av den inloggade användaren.--filter
tar ett OData-filter och utför filtrering på serversidan . Den här metoden rekommenderas för filtrering av klientsidan med CLI-parametern--query
. Mer information om OData-filter finns i OData-uttryckssyntax för filter.
Informationen som returneras för objekt för tjänstens huvudnamn är utförlig. Om du bara vill hämta den information som krävs för inloggning använder du frågesträngen [].{id:appId, tenant:appOwnerOrganizationId}
. Här är ett exempel som hämtar inloggningsinformationen för alla tjänsthuvudnamn som skapats av den inloggade användaren:
az ad sp list --show-mine --query "[].{SPname:displayName, SPid:appId, tenant:appOwnerOrganizationId}" --output table
Om du arbetar i en stor organisation med många tjänsthuvudnamn kan du prova följande kommandoexempel:
# 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
Viktigt!
Både användaren och klientorganisationen kan hämtas med az ad sp-listan och az ad sp show, men autentiseringshemligheter eller autentiseringsmetoden är inte tillgänglig. Hemligheter för certifikat i Azure Key Vault kan hämtas med az keyvault secret show, men inga andra hemligheter lagras som standard. Om du glömmer en autentiseringsmetod eller hemlighet återställer du autentiseringsuppgifterna för tjänstens huvudnamn.
Egenskaper för tjänstens huvudnamn
När du får en lista över tjänstens huvudnamn med hjälp az ad sp list
av finns det många utdataegenskaper som du kan referera till i skriptet.
[
{
"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
}
}
]
Använd parametern --query
för att hämta och lagra egenskaper för tjänstens huvudnamn i variabler.
# 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"
Nästa steg
Nu när du har lärt dig hur du hämtar ditt befintliga huvudnamn för tjänsten går du vidare till nästa steg för att lära dig hur du hanterar tjänstens huvudnamnsroller.