Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Elencare le entità servizio
Se si dispone già di un principal di servizio esistente che si desidera utilizzare, questo passaggio spiega come recuperare il principal di servizio esistente.
È possibile ottenere un elenco delle entità di servizio in un tenant utilizzando az ad sp list. Per impostazione predefinita, questo comando restituisce i primi 100 principali di servizio per il tenant. Per ottenere tutti i principali del servizio di un tenant, usare il parametro --all
. L'acquisizione di questo elenco può richiedere molto tempo, pertanto è consigliabile filtrare l'elenco con uno dei parametri seguenti:
-
--display-name
richiede entità servizio che abbiano un prefisso che corrisponde al nome specificato. Il nome visualizzato di un'entità del servizio è il valore impostato con il parametro--name
durante la creazione. Se non è stato impostato--name
durante la creazione dell'entità servizio, il prefisso del nome èazure-cli-
. -
--spn
filtra in base alla corrispondenza esatta del nome principale del servizio. Il nome principale del servizio inizia sempre conhttps://
. se il valore usato per--name
non era un URI, questo valore èhttps://
seguito dal nome visualizzato. -
--show-mine
richiede solo i principali servizi creati dall'utente autenticato. -
--filter
accetta un filtro OData ed esegue il filtraggio lato server. Questo metodo è consigliato rispetto al filtraggio lato client con il parametro--query
dell'interfaccia della riga di comando. Per informazioni sui filtri OData, vedere Sintassi delle espressioni OData per i filtri.
Le informazioni restituite per gli oggetti di entità servizio principale sono verbose. Per ottenere solo le informazioni necessarie per l'accesso, usare la stringa [].{id:appId, tenant:appOwnerOrganizationId}
di query . Ecco un esempio che ottiene le informazioni di accesso per tutte le entità servizio create dall'utente attualmente connesso:
az ad sp list --show-mine --query "[].{SPname:displayName, SPid:appId, tenant:appOwnerOrganizationId}" --output table
Se si lavora in un'organizzazione di grandi dimensioni con molte entità servizio, provare questi esempi di comando:
# 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
Importante
L'utente e il tenant possono essere recuperati con az ad sp list e az ad sp show, ma i segreti di autenticazione o il metodo di autenticazione non sono disponibili. I segreti per i certificati in Azure Key Vault possono essere recuperati con az keyvault secret show, ma per impostazione predefinita non vengono archiviati altri segreti. Se si dimentica un metodo di autenticazione o un segreto, reimposta le credenziali del principale del servizio.
Proprietà dell'entità servizio
Quando si ottiene un elenco di entità servizio usando az ad sp list
, sono disponibili molte proprietà di output a cui è possibile fare riferimento nello script.
[
{
"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
}
}
]
Usare il parametro --query
per recuperare e archiviare le proprietà del service principal nelle variabili.
# 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"
Passaggi successivi
Dopo aver appreso come recuperare la tua entità servizio esistente, passa al passaggio successivo per imparare a gestire i ruoli dell'entità servizio.