Partager via


Authentification Azure avec Java et Azure Identity

Cet article introduit la bibliothèque Azure Identity pour Java, qui permet l'authentification via des jetons Microsoft Entra dans le SDK Azure pour Java. Cette bibliothèque fournit un ensemble d'implémentations TokenCredential que vous pouvez utiliser pour construire des clients Azure SDK qui prennent en charge l'authentification par jeton Microsoft Entra.

La bibliothèque Azure Identity prend actuellement en charge :

Suivez ces liens pour en savoir plus sur les spécificités de chacune de ces méthodes d’authentification. Dans la suite de cet article, nous présentons les DefaultAzureCredential couramment utilisés et les sujets connexes.

Ajouter les dépendances Maven

Pour ajouter la dépendance Maven, ajoutez le code XML suivant dans le fichier pom.xml du projet. Remplacez {version_number} par le numéro de version de la dernière version stable, comme indiqué sur la Page Bibliothèque de l'identité Azure.

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
    <version>{version_number}</version>
</dependency>

Concepts clés

Deux concepts sont essentiels pour comprendre la bibliothèque Azure Identity : celui des informations d’identification, et l’implémentation la plus courante de ces informations d’identification, DefaultAzureCredential.

Les informations d’identification sont une classe qui contient ou peut obtenir les données nécessaires à un client de service pour authentifier les demandes. Les clients de service du Kit de développement logiciel (SDK) Azure acceptent les informations d’identification lorsqu’ils sont créés, et les clients de service utilisent ces informations d’identification pour authentifier les demandes auprès du service.

La bibliothèque Azure Identity met l'accent sur l'authentification OAuth avec Microsoft Entra ID et propose plusieurs classes de justificatifs permettant d'obtenir un jeton Microsoft Entra pour authentifier les requêtes de service. Toutes les classes d’informations d’identification de cette bibliothèque sont des implémentations de la classe abstraite TokenCredential dans azure-core. Vous pouvez les utiliser indifféremment pour construire des clients de service qui peuvent s’authentifier avec TokenCredential.

DefaultAzureCredential convient à la plupart des scénarios où l’application est destinée à s’exécuter dans le cloud Azure. DefaultAzureCredential combine les informations d’identification couramment utilisées pour l’authentification après déploiement avec les informations d’identification utilisées pour l’authentification dans un environnement de développement. Pour plus d’informations, y compris des exemples utilisant DefaultAzureCredential, consultez la section Informations d’identification Azure par défaut de la rubrique Authentification des applications Java hébergées sur Azure.

Exemples

Comme indiqué dans Utiliser le Kit de développement logiciel (SDK) Azure pour Java, les bibliothèques de gestion diffèrent légèrement. L’une de ces différences réside dans le fait qu’il existe des bibliothèques pour consommer les services Azure, les bibliothèques de client, et d’autres pour gérer les services Azure, les bibliothèques de gestion. Les sections suivantes présentent une vue d’ensemble de l’authentification dans les bibliothèques de client et de gestion.

Authentifier des bibliothèques de client Azure

L’exemple suivant illustre l’authentification du SecretClient à partir de la bibliothèque de client azure-security-keyvault-secrets à l’aide des informations d’identification DefaultAzureCredential.

// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
  .vaultUrl("https://<your Key Vault name>.vault.azure.net")
  .credential(new DefaultAzureCredentialBuilder().build())
  .buildClient();

Authentifier des bibliothèques de gestion Azure

Les bibliothèques de gestion Azure utilisent les mêmes API d’informations d’identification que les bibliothèques de client Azure, mais elles nécessitent en outre un ID d’abonnement Azure pour gérer les ressources Azure sur cet abonnement.

Vous trouverez les ID d’abonnement dans la page Abonnements du portail Azure. Vous pouvez également exécuter la commande Azure CLI suivante pour obtenir les ID d’abonnement :

az account list --output table

Vous pouvez définir l’ID d’abonnement dans la variable d’environnement AZURE_SUBSCRIPTION_ID. AzureProfile récupère cet ID comme ID d'abonnement par défaut lors de la création d'une instance Manager dans l'exemple suivant :

AzureResourceManager azureResourceManager = AzureResourceManager.authenticate(
        new DefaultAzureCredentialBuilder().build(),
        new AzureProfile(AzureEnvironment.AZURE))
    .withDefaultSubscription();

Les informations d’identification DefaultAzureCredential utilisées dans cet exemple authentifient une instance de AzureResourceManager à l’aide de DefaultAzureCredential. Vous pouvez également utiliser d’autres implémentations de Token Credential proposées dans la bibliothèque Azure Identity à la place de DefaultAzureCredential.

Dépannage

Pour obtenir des conseils, consultez la section Dépanner les problèmes d'authentification d'Azure Identity.

Étapes suivantes

Cet article a présenté la fonctionnalité Azure Identity disponible dans le Kit de développement logiciel (SDK) Azure pour Java. Les informations d’identification DefaultAzureCredential ont été décrites comme courantes et appropriées dans de nombreux cas. Les articles suivants décrivent d’autres méthodes d’authentification à l’aide de la bibliothèque Azure Identity et fournissent des informations supplémentaires sur DefaultAzureCredential :