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.
Quando si crea un principale del servizio, si sceglie il tipo di autenticazione di accesso che utilizza. Esistono due tipi di autenticazione disponibili per le entità servizio di Azure: autenticazione basata su password e autenticazione basata su certificati. L'autenticazione basata su password è utile quando si apprendono i principali di servizio, ma raccomandiamo l'uso dell'autenticazione basata su certificato per le applicazioni.
Questo passaggio della guida illustra come usare una password del principale del servizio per accedere a una risorsa di Azure.
Creare un'entità servizio contenente una password
Il comportamento predefinito di az ad sp create-for-rbac consiste nel creare un'entità servizio con una password casuale.
az ad sp create-for-rbac --name myServicePrincipalName \
--role reader \
--scopes /subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName
Console di output:
{
"appId": "myServicePrincipalId",
"displayName": "myServicePrincipalName",
"password": "myServicePrincipalPassword",
"tenant": "myOrganizationTenantId"
}
L'output per un service principal con autenticazione tramite password include la chiave password
. Assicurarsi di copiare questo valore. Non è possibile recuperarlo. Se perdi la password, reimposta le credenziali principali del servizio.
Accedere con un'entità servizio usando una password
Testare le credenziali e le autorizzazioni del nuovo principale del servizio effettuando l'accesso. Per accedere con un'entità servizio, è necessario l'appId
(noto anche come "ID entità servizio", "username" o "assignee"), tenant
e password
. Ecco un esempio:
az login --service-principal \
--username myServicePrincipalId \
--password myServicePrincipalPassword \
--tenant myOrganizationTenantID
Se non si conosce appId
o --tenant
, recuperalo utilizzando il comando az ad sp list
.
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)
echo "Using appId $spID in tenant $tenantID"
az login --service-principal \
--username $spID \
--password {paste your password here} \
--tenant $tenantID
Se si esegue il test in un'organizzazione che richiede l'autenticazione a due fattori, il messaggio di errore "... È necessaria l'autenticazione interattiva..." viene visualizzato. In alternativa, usare un certificato o identità gestite.
Importante
Se si vuole evitare di visualizzare la password nella console e si usa az login
in modo interattivo, usare il read -s
comando in bash
.
read -sp "Azure password: " AZ_PASS && echo && az login --service-principal -u <app-id> -p $AZ_PASS --tenant <tenant>
In PowerShell usare il cmdlet Get-Credential
.
$AzCred = Get-Credential -UserName <app-id>
az login --service-principal -u $AzCred.UserName -p $AzCred.GetNetworkCredential().Password --tenant <tenant>
Passaggi successivi
Ora che si è appreso come usare le entità servizio usando una password, procedere con il passaggio successivo per informazioni su come usare le entità servizio con l'autenticazione basata su certificati.