Authentification Azure dans les environnements de développement Java

Cet article fournit une vue d’ensemble de la prise en charge de la bibliothèque Azure Identity pour l’authentification par jeton Microsoft Entra. 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 de l’environnement de développement, consultez Résoudre les problèmes d’authentification de l’environnement 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. Il fonctionne en invitant l’utilisateur à visiter une URL de connexion sur un ordinateur compatible avec le navigateur lorsque l’application tente de s’authentifier. L’utilisateur entre ensuite le code de l’appareil mentionné dans les instructions, ainsi que ses informations d’identification 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. Accédez à Microsoft Entra ID dans le Portail Azure et recherchez votre inscription d’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 l’autorisation de vous connecter à Microsoft Entra ID ou d’accéder aux 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 ID Microsoft Entra, il peut être nécessaire que votre application soit mutualisée. 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 l’utiliser InteractiveBrowserCredential, vous devez inscrire une application dans Microsoft Entra ID avec les autorisations nécessaires pour vous connecter au nom d’un utilisateur. Suivez les étapes précédentes pour que le flux de code de l’appareil inscrive votre application. Comme mentionné précédemment, un administrateur de votre locataire doit accorder son 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 URI de redirection sous la section Authentification de votre application Microsoft Entra inscrite.

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

Les informations d’identification Azure CLI s’authentifient dans un environnement de développement avec l’utilisateur ou le principal de service activé dans Azure CLI. Il utilise Azure CLI donné à un utilisateur déjà connecté et utilise l’interface CLI pour authentifier l’application sur l’ID Microsoft Entra.

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

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

Les informations d’identification IntelliJ s’authentifient dans un environnement de développement avec le compte dans Azure Shared Computer Toolkit pour IntelliJ. Il utilise les informations utilisateur connectées sur l’IDE IntelliJ et l’utilise pour authentifier l’application sur l’ID Microsoft Entra.

Se connecter à Azure Toolkit for IntelliJ pour IntelliJCredential

Pour vous connecter, procédez comme suit :

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

Sur Windows, vous avez également besoin du chemin de base de données KeePass pour lire les informations d’identification IntelliJ. Vous trouverez le chemin d’accès dans les paramètres IntelliJ sous Fichier > Paramètres > Apparence et Comportement > système Paramètres > 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 utilisateur connectées dans l’IDE VS Code et l’utilise pour authentifier l’application sur l’ID Microsoft Entra.

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

L’intégration de Nn à l’extension de compte Azure gère l’authentification Visual Studio Code. Pour utiliser cette forme d’authentification, installez l’extension compte Azure, puis utilisez La palette de commandes Afficher > pour exécuter la commande Azure : Connexion. 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 (dans le débogueur ou n’importe où sur l’ordinateur de développement) utilise les informations d’identification 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 Résoudre les problèmes d’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.