Condividi tramite


Accedere ad Azure con un'entità servizio usando l'interfaccia della riga di comando di Azure

Le entità servizio sono account non associati a un determinato utente, a cui è possibile assegnare permessi tramite ruoli predefiniti. L'autenticazione con un'entità servizio è il modo migliore per scrivere script o programmi sicuri. Consente di applicare le restrizioni delle autorizzazioni e le informazioni sulle credenziali statiche archiviate in locale. Per altre informazioni sulle entità servizio, vedere Usare le entità servizio di Azure usando l'interfaccia della riga di comando di Azure.

Per accedere con un'entità servizio è necessario:

  • L'URL o il nome associato al principale del servizio.
  • Segreto client dell'entità servizio o il certificato X509 utilizzato per creare l'entità servizio in formato PEM.
  • Tenant associato al principal del servizio, come un dominio .onmicrosoft.com o un ID tenant di Microsoft Entra.

Si notino due fatti importanti quando si lavora con le entità servizio e l'interfaccia della riga di comando di Azure:

  • È necessario aggiungere un CERTIFICATO alla CHIAVE PRIVATA in un file PEM. Per un esempio di formato di file PEM, vedere Autenticazione basata su certificati.

  • Se l'entità servizio usa un certificato archiviato in Key Vault, la chiave privata del certificato deve essere disponibile senza accedere ad Azure. Per recuperare il certificato per az login, vedere Recuperare il certificato da Key Vault.

Per accedere con un segreto client, usare il comando seguente:

az login --service-principal --username APP_ID --password CLIENT_SECRET --tenant TENANT_ID

Per accedere con un certificato, usare il comando seguente:

az login --service-principal --username APP_ID --certificate /path/to/cert.pem --tenant TENANT_ID

Importante

Per evitare di visualizzare la password nella console quando si usa az login in modo interattivo, usare il comando read -s in bash.

read -sp "Azure password: " AZ_PASS && echo && az login --service-principal --username <app-id> --password $AZ_PASS --tenant <tenant>

In PowerShell usare il cmdlet Get-Credential.

$AzCred = Get-Credential -UserName <app-id>
az login --service-principal --username $AzCred.UserName --password $AzCred.GetNetworkCredential().Password --tenant <tenant>

Vedi anche