Connectez-vous à Azure avec un principal de service à l’aide d’Azure CLI
Les principes de service ne sont pas liés à un utilisateur particulier et permettent d'attribuer des autorisations via des rôles prédéfinis. L’authentification auprès d’un principal de service est la meilleure façon d’écrire des scripts ou des programmes sécurisés. Elle vous permet d’appliquer les restrictions d’autorisations et les informations d’identification statiques stockées localement. Pour en savoir plus sur les principaux de service, consultez l’article Utiliser les principaux de service à l’aide d’Azure CLI.
Pour vous connecter avec un principal de service, il vous faut :
- URL ou nom associé au principal de service.
- Secret client du principal de service ou certificat X509 utilisé pour créer le principal de service au format PEM.
- Locataire associé au principal de service, sous la forme d’un domaine
.onmicrosoft.com
ou d’un ID de locataire Microsoft Entra.
Notez deux faits importants quand vous utilisez des principaux de service et Azure CLI :
Un CERTIFICAT doit être ajouté à la CLÉ PRIVÉE dans un fichier PEM. Pour voir un exemple de fichier au format PEM, consultez Authentification par certificat.
Si votre principal du service utilise un certificat qui est stocké dans Key Vault, la clé privée de ce certificat doit être disponible sans connexion à Azure. Si vous souhaitez récupérer le certificat pour
az login
, consultez Récupérer un certificat à partir de Key Vault.
Pour vous connecter avec une clé secrète client, utilisez la commande suivante :
az login --service-principal --username APP_ID --password CLIENT_SECRET --tenant TENANT_ID
Pour vous connecter avec un certificat, utilisez la commande suivante :
az login --service-principal --username APP_ID --certificate /path/to/cert.pem --tenant TENANT_ID
Important
Pour éviter d’afficher votre mot de passe sur la console lors de l’utilisation de az login
de manière interactive, utilisez la commande read -s
sous bash
.
read -sp "Azure password: " AZ_PASS && echo && az login --service-principal --username <app-id> --password $AZ_PASS --tenant <tenant>
Sous PowerShell, utilisez la cmdlet Get-Credential
.
$AzCred = Get-Credential -UserName <app-id>
az login --service-principal --username $AzCred.UserName --password $AzCred.GetNetworkCredential().Password --tenant <tenant>