Partager via


Utiliser un principal de service Azure avec une authentification par mot de passe

Lorsque vous créez un principal de service, vous choisissez le type d’authentification de connexion qu’il utilise. Il existe deux types d’authentification disponibles pour les principaux de service Azure : l’authentification par mot de passe et l’authentification par certificat. L’authentification par mot de passe est utile lorsqu’on apprend à propos des principaux de service, mais nous vous recommandons d’utiliser l'authentification par certificat pour les applications.

Cette étape du didacticiel explique comment utiliser un mot de passe de principal de service pour accéder à une ressource Azure.

Créer un principal de service contenant un mot de passe

Le comportement par défaut de az ad sp create-for-rbac consiste à créer un principal de service avec un mot de passe aléatoire.

az ad sp create-for-rbac --name myServicePrincipalName \
                         --role reader \
                         --scopes /subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName

Console de sortie :

{
  "appId": "myServicePrincipalId",
  "displayName": "myServicePrincipalName",
  "password": "myServicePrincipalPassword",
  "tenant": "myOrganizationTenantId"
}

La sortie d’un principal de service avec l’authentification par mot de passe comprend la clé password. Vérifiez que vous copiez cette valeur : elle ne peut pas être récupérée. Si vous perdez le mot de passe, effectuez une réinitialisation des informations d’identification du principal de service.

Se connecter en utilisant un service principal avec un mot de passe

Testez les informations d’identification et les autorisations du nouveau principal du service en vous connectant. Pour vous connecter avec un principal de service, vous avez besoin du appId (également appelé « ID principal de service », « nom d'utilisateur » ou « personne assignée »), tenant, et password. Voici un exemple :

az login --service-principal \
         --username myServicePrincipalId \
         --password myServicePrincipalPassword \
         --tenant myOrganizationTenantID

Si vous ne connaissez pas votre appId ou votre --tenant, récupérez-le à l’aide de la commande 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

Si vous effectuez des tests dans une organisation qui nécessite une authentification à deux facteurs, message d’erreur « ... L’authentification interactive est nécessaire... s’affiche. En guise d’alternative, utilisez un certificat ou identités managées.

Important

Si vous souhaitez éviter d'afficher votre mot de passe sur la console et que vous l'utilisez az login de manière interactive, utilisez la commande read -s dans bash.

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

Dans PowerShell, utilisez l’applet de commande Get-Credential.

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

Étapes suivantes

Maintenant que vous avez appris à utiliser des principaux de services en utilisant un mot de passe, passez à l'étape suivante afin d'apprendre à utiliser des principaux de services par authentification par certificat.