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 :
- Authentification Azure dans les environnements de développement Java, qui permet :
- Authentification INTELLIJ IDEA, avec les informations de connexion récupérées à partir du Shared Computer Toolkit Azure pour IntelliJ.
- Authentification Visual Studio Code, avec les informations de connexion enregistrées dans le plug-in Azure pour Visual Studio Code.
- Authentification Azure CLI, avec les informations de connexion enregistrées dans Azure CLI
- Authentification d’applications hébergées dans Azure, ce qui permet :
- Authentification avec les informations d’identification Azure par défaut
- Authentification par une identité managée
- Authentification avec des principaux de service, qui active :
- Authentification par clé secrète client
- Authentification par certificat client
- Authentification avec les informations d’identification de l’utilisateur, qui permet :
- Authentification interactive du navigateur
- Authentification de code d’appareil
- Authentification par nom d’utilisateur/mot de passe
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 DefaultAzureCredential
de .
// 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 DefaultAzureCredential
de . 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
: