Partager via


Se connecter à Azure avec un principal de service en utilisant Azure CLI

Les principaux de service sont des comptes non liés à un utilisateur spécifique, qui peuvent détenir des autorisations sur ces derniers, attribuées par le biais de rôles prédéfinis. L’authentification avec un principal de service est la meilleure façon d’écrire des scripts ou des programmes sécurisés, ce qui vous permet d’appliquer des restrictions d’autorisation et des 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 :

  • L’URL ou le nom associé au principal du 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, en tant que domaine ou ID .onmicrosoft.com 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.

Connectez-vous avec la clé secrète client :

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

Connectez-vous avec un certificat :

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

Important

Si vous souhaitez éviter l’affichage de votre mot de passe sur la console et que vous utilisez 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>

Voir aussi