Partager via


Authentification Azure dans les environnements de développement Java

Cet article donne un aperçu de la prise en charge de l'authentification par jeton Microsoft Entra par la bibliothèque Azure Identity. Cette prise en charge permet l’authentification pour les applications qui s’exécutent localement sur les ordinateurs de développement via un ensemble d’implémentations de TokenCredential.

Cet article aborde les sujets suivants :

Pour résoudre les problèmes d'authentification dans les environnements de développement, consultez Dépannage de l'authentification dans les environnements de développement.

Informations d’identification du code d’appareil

Les informations d’identification du code d’appareil authentifient de manière interactive un utilisateur sur les appareils avec une interface utilisateur limitée. Elle fonctionne en invitant l'utilisateur à visiter une URL de connexion sur une machine dotée d'un navigateur lorsque l'application tente de s'authentifier. L'utilisateur saisit alors le code de l'appareil mentionné dans les instructions ainsi que ses identifiants de connexion. Une fois l’authentification réussie, l’application qui a demandé l’authentification est correctement authentifiée sur l’appareil sur lequel elle s’exécute.

Pour en savoir plus, consultez Plateforme d’identités Microsoft et flux d’octroi d’autorisation d’appareil OAuth 2.0.

Activer les applications pour le flux de code d’appareil

Pour authentifier un utilisateur par le biais du flux de code d’appareil, procédez comme suit :

  1. Allez sur Microsoft Entra ID dans le portail Azure et trouvez l'enregistrement de votre application.
  2. Faites défiler jusqu’à la section Authentification.
  3. Sous URI redirigés suggérés, recherchez l’URI qui se termine par /common/oauth2/nativeclient.
  4. Sous Type de client par défaut, sélectionnez Oui pour Considérer l’application comme un client public.

Ces étapes permettent à l'application de s'authentifier, mais elle n'a toujours pas la permission de vous connecter à Microsoft Entra ID, ni d'accéder à des ressources en votre nom. Pour résoudre ce problème, accédez à Autorisations d’API, puis activez Microsoft Graph et les ressources auxquelles vous souhaitez accéder.

Vous devez également être l'administrateur de votre locataire pour accorder le consentement à votre application lorsque vous vous connectez pour la première fois.

Si vous ne pouvez pas configurer l'option de flux de code d'appareil sur votre Microsoft Entra ID, il se peut que votre application doive être multi-locataire. Pour que votre application soit multi-locataire, accédez au panneau Authentification, puis sélectionnez Comptes dans n’importe quel annuaire d’organisation. Sélectionnez Oui pour Considérer l’application comme un client public.

Authentifier un compte d’utilisateur avec le flux de code d’appareil

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 DeviceCodeCredential sur un appareil IoT.

DeviceCodeCredential deviceCodeCredential = new DeviceCodeCredentialBuilder()
  .challengeConsumer(challenge -> {
    // lets user know of the challenge
    System.out.println(challenge.getMessage());
  }).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(deviceCodeCredential)
  .buildClient();

Informations d’identification du navigateur interactif

Cette méthode authentifie de manière interactive un utilisateur avec le navigateur système par défaut et offre une expérience d’authentification fluide en vous permettant d’utiliser vos propres informations d’identification pour authentifier votre application.

Activer les applications pour le flux OAuth 2 de navigateur interactif

Pour utiliser InteractiveBrowserCredential, vous devez enregistrer une application dans Microsoft Entra ID avec des permissions pour se connecter au nom d'un utilisateur. Suivez les étapes précédentes pour le flux de code d'appareil pour enregistrer votre application. Comme mentionné précédemment, un administrateur de votre locataire doit accorder le consentement à votre application avant que tout compte d'utilisateur puisse se connecter.

Notez que dans InteractiveBrowserCredentialBuilder, une URL de redirection est requise. Ajoutez l'URL de redirection à la sous-section Redirection des URI dans la section Authentification de votre application Microsoft Entra enregistrée.

Authentifier un compte d’utilisateur de manière interactive dans le navigateur

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 InteractiveBrowserCredential.

InteractiveBrowserCredential interactiveBrowserCredential = new InteractiveBrowserCredentialBuilder()
  .clientId("<your client ID>")
  .redirectUrl("http://localhost:8765")
  .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(interactiveBrowserCredential)
  .buildClient();

Informations d’identification d’Azure CLI

Le justificatif d'identité Azure CLI s'authentifie dans un environnement de développement avec l'utilisateur ou le principal de service activé dans Azure CLI. Il utilise l'Azure CLI avec un utilisateur déjà connecté et utilise l'Azure CLI pour authentifier l'application par rapport à Microsoft Entra ID.

Se connecter à Azure CLI pour AzureCliCredential

Connectez-vous en tant qu’utilisateur avec la commande Azure CLI suivante :

az login

Connectez-vous en tant que principal du service à l’aide de la commande suivante :

az login \
    --service-principal \
    --username <client-ID> \
    --password <client-secret> \
    --tenant <tenant-ID>

Si le compte ou le principal du service a accès à plusieurs locataires, assurez-vous que le locataire ou l’abonnement souhaité est dans l’état « Activé » dans la sortie de la commande suivante :

az account list

Avant d’utiliser AzureCliCredential dans le code, exécutez la commande suivante pour vérifier que le compte a été configuré avec succès.

az account get-access-token

Vous devrez peut-être répéter ce processus au bout d’un certain temps, en fonction de la validité du jeton d’actualisation dans votre organisation. En règle générale, la période de validité du jeton d’actualisation est de quelques semaines à quelques mois. AzureCliCredential vous invite à vous connecter à nouveau.

Authentifier un compte d’utilisateur avec Azure CLI

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 AzureCliCredential sur une station de travail sur laquelle Azure CLI est installée et connectée.

AzureCliCredential cliCredential = new AzureCliCredentialBuilder().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(cliCredential)
  .buildClient();

Informations d’identification IntelliJ

L'identifiant IntelliJ s'authentifie dans un environnement de développement avec le compte dans Azure Toolkit for IntelliJ. Il utilise les informations de l'utilisateur connecté sur l'IntelliJ IDE et les utilise pour authentifier l'application par rapport à Microsoft Entra ID.

Se connecter à Azure Toolkit for IntelliJ pour IntelliJCredential

Pour vous connecter, effectuez les étapes suivantes :

  1. Dans votre fenêtre IntelliJ, ouvrez Fichier > Paramètres > Plug-ins.
  2. Recherchez « Azure Toolkit for IntelliJ » sur la place de marché. Installez et redémarrez l’IDE.
  3. Trouvez le nouvel élément de menu Outils > Azure > Connexion à Azure
  4. Connexion à l'appareil vous aide à vous connecter en tant que compte utilisateur. Suivez les instructions pour vous connecter sur le site web login.microsoftonline.com avec le code de l'appareil. IntelliJ vous invite à sélectionner vos abonnements. Sélectionnez l’abonnement contenant les ressources auxquelles vous voulez accéder.

Sous Windows, vous avez également besoin du chemin d'accès à la base de données KeePass pour lire les informations d'identification d'IntelliJ. Vous trouverez le chemin d'accès dans les paramètres d'IntelliJ sous Fichier > Paramètres > Apparence & Comportement > Paramètres du système > Mots de passe. Notez l’emplacement du chemin d’accès KeePassDatabase.

Authentifier un compte d’utilisateur avec l’IDEA IntelliJ

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 IntelliJCredential sur une station de travail sur laquelle l’IDEA IntelliJ est installée et l’utilisateur est connecté avec un compte Azure.

IntelliJCredential intelliJCredential = new IntelliJCredentialBuilder()
  // KeePass configuration isrequired only for Windows. No configuration needed for Linux / Mac.
  .keePassDatabasePath("C:\\Users\\user\\AppData\\Roaming\\JetBrains\\IdeaIC2020.1\\c.kdbx")
  .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(intelliJCredential)
  .buildClient();

Informations d’identification de Visual Studio Code

Les informations d’identification de Visual Studio Code permettent l’authentification dans les environnements de développement où VS Code est installé avec l’extension de compte Azure VS Code. Il utilise les informations de l'utilisateur connecté dans l'IDE VS Code et s'en sert pour authentifier l'application par rapport à Microsoft Entra ID.

Se connecter à l’extension de compte Azure Visual Studio Code pour VisualStudioCodeCredential

L'intégration de Nn avec l'extension Azure Account gère l'authentification de Visual Studio Code. Pour utiliser cette forme d'authentification, installez l'extension Azure Account, puis utilisez Affichage > Palette de commandes pour exécuter la commande Azure : Sign In. Cette commande ouvre une fenêtre de navigateur et affiche une page de connexion à Azure. Une fois le processus de connexion terminé, vous pouvez fermer le navigateur comme indiqué. L'exécution de votre application (que ce soit dans le débogueur ou n'importe où sur la machine de développement) utilise l'identifiant de votre connexion.

Authentifier un compte d’utilisateur avec Visual Studio Code

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 VisualStudioCodeCredential sur une station de travail sur laquelle Visual Studio Code est installé et l’utilisateur est connecté avec un compte Azure.

VisualStudioCodeCredential visualStudioCodeCredential = new VisualStudioCodeCredentialBuilder().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(visualStudioCodeCredential)
  .buildClient();

Étapes suivantes

Cet article a abordé l’authentification pendant le développement à l’aide des informations d’identification disponibles sur votre ordinateur. 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 :

Si vous rencontrez des problèmes liés à l'authentification de l'environnement de développement, consultez la section Dépannage de l'authentification de l'environnement de développement.

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.