Authentification Azure avec Java et Azure Identity

Cet article fournit une vue d’ensemble de la bibliothèque Java Azure Identity, qui fournit la prise en charge de l’authentification par jeton Microsoft Entra dans le Kit de développement logiciel (SDK) Azure pour Java. Cette bibliothèque fournit un ensemble d’implémentations TokenCredential que vous pouvez utiliser pour construire des clients du Kit de développement logiciel (SDK) Azure 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 approches d’authentification. Dans le reste de cet article, nous présentons les sujets couramment utilisés DefaultAzureCredential et 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é dans la page bibliothèque d’identités Azure.

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

Concepts clés

Il existe deux concepts clés pour comprendre la bibliothèque d’identités Azure : le concept d’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 d’identités Azure se concentre sur l’authentification OAuth avec l’ID Microsoft Entra et propose différentes classes d’informations d’identification qui peuvent acquérir un jeton Microsoft Entra pour authentifier les demandes 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 en fin de compte 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 SecretClient à partir de la bibliothèque cliente azure-security-keyvault-secrets à l’aide DefaultAzureCredentialde .

// 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 pendant la création d’une Manager instance dans l’exemple suivant :

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

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

Résolution des problèmes

Pour obtenir des conseils, consultez Résoudre les problèmes d’authentification d’identité Azure.

Étapes suivantes

Cet article a présenté la fonctionnalité Azure Identity disponible dans le Kit de développement logiciel (SDK) Azure pour Java. Il est décrit DefaultAzureCredential comme courant et approprié dans de nombreux cas. Les articles suivants décrivent d’autres façons de s’authentifier à l’aide de la bibliothèque Azure Identity et fournissent plus d’informations sur DefaultAzureCredential: