Authentification Azure avec un principal de service
Cet article explique comment la bibliothèque Azure Identity prend en charge l'authentification par jeton Microsoft Entra via un service principal. Cet article aborde les sujets suivants :
- Créez un service principal avec Azure CLI
- Informations d’identification de clé secrète client
- Informations d’identification de certificat client
Pour plus d’informations, consultez Objets d’application et du principal de service dans Microsoft Entra ID. Pour résoudre les problèmes d'authentification de principal de service, consultez la section Dépannage de l'authentification de principal de service.
Créer un principal de service avec l’interface Azure CLI
Utilisez les exemples Azure CLI suivants pour créer ou obtenir des informations d'identification secrètes de client.
Utilisez la commande suivante pour créer un principal de service et configurer son accès aux ressources Azure :
az ad sp create-for-rbac \
--name <your application name> \
--role Contributor \
--scopes /subscriptions/mySubscriptionID
Cette commande retourne une valeur semblable à la sortie suivante :
{
"appId": "generated-app-ID",
"displayName": "dummy-app-name",
"name": "http://dummy-app-name",
"password": "random-password",
"tenant": "tenant-ID"
}
Utilisez la commande suivante pour créer un principal de service ainsi qu’un certificat. Notez le chemin d’accès/l’emplacement de ce certificat.
az ad sp create-for-rbac \
--name <your application name> \
--role Contributor \
--cert <certificate name> \
--create-cert
Consultez les informations d’identification retournées et notez les informations suivantes :
AZURE\_CLIENT\_ID
pour l’appId.AZURE\_CLIENT\_SECRET
pour le mot de passe.AZURE\_TENANT\_ID
pour le locataire.
Informations d’identification de clé secrète client
Ces informations d’identification authentifient le principal de service créé par le biais de sa clé secrète client (mot de passe). Cet exemple illustre l’authentification du SecretClient
à partir de la bibliothèque de client azure-security-keyvault-secrets à l’aide de ClientSecretCredential
.
/**
* Authenticate with client secret.
*/
ClientSecretCredential clientSecretCredential = new ClientSecretCredentialBuilder()
.clientId("<your client ID>")
.clientSecret("<your client secret>")
.tenantId("<your tenant ID>")
.build();
// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<your Key Vault name>.vault.azure.net")
.credential(clientSecretCredential)
.buildClient();
Informations d’identification de certificat client
Ces informations d’identification authentifient le principal de service créé par le biais de son certificat client. Cet exemple illustre l’authentification du SecretClient
à partir de la bibliothèque de client azure-security-keyvault-secrets à l’aide de ClientCertificateCredential
.
/**
* Authenticate with a client certificate.
*/
ClientCertificateCredential clientCertificateCredential = new ClientCertificateCredentialBuilder()
.clientId("<your client ID>")
.pemCertificate("<path to PEM certificate>")
// Choose between either a PEM certificate or a PFX certificate.
//.pfxCertificate("<path to PFX certificate>", "PFX CERTIFICATE PASSWORD")
.tenantId("<your tenant ID>")
.build();
// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<your Key Vault name>.vault.azure.net")
.credential(clientCertificateCredential)
.buildClient();
Étapes suivantes
Cet article a abordé l’authentification via un principal de service. Cette forme d’authentification est l’une des nombreuses méthodes permettant de s’authentifier dans le Kit de développement logiciel (SDK) Azure pour Java. Les articles suivants décrivent d’autres méthodes :
- Authentification Azure dans les environnements de développement
- Authentification d’applications hébergées dans Azure
- Authentification avec des informations d’identification d’utilisateur
Si vous rencontrez des problèmes liés à l'authentification du principal de service, voir Dépannage de l'authentification du principal de service.
Une fois l’authentification maître effectuée, consultez Configurer la journalisation dans le Kit de développement logiciel (SDK) Azure pour Java pour en savoir plus sur la fonctionnalité de journalisation fournie par le SDK.