Authentification Azure avec Java et Azure Identity
Cet article fournit une vue d’ensemble de la bibliothèque Azure Identity pour Java, 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 Azure SDK 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 active :
- Authentification IDEA IntelliJ, avec les informations de connexion récupérées à partir de la Boîte à outils Azure pour IntelliJ.
- Authentification de la CLI d'Azure, avec les informations de connexion enregistrées dans la CLI d'Azure.
- Authentification Azure Developer CLI, avec les informations de connexion enregistrées dans Azure Developer CLI
- Authentification Azure PowerShell, avec les informations de connexion enregistrées dans Azure PowerShell
- Authentification d’applications hébergées dans Azure, qui active :
- l’authentification
DefaultAzureCredential
- Authentification d’identité managée
- l’authentification
- Authentification avec des principaux de service, qui active :
- Authentification par clé secrète client
- Authentification par certificat client
- Authentification avec des informations d’identification d’utilisateur, qui active :
- 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 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, notamment des exemples d’utilisation DefaultAzureCredential
, consultez la section DefaultAzureCredential de l’authentification des applications Java hébergées par 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
: