Authentification Azure avec des informations d’identification d’utilisateur

Cet article explique comment la bibliothèque Azure Identity prend en charge l’authentification par jeton Microsoft Entra avec les informations d’identification fournies par l’utilisateur. Cette prise en charge est rendue possible par le biais d’un ensemble d’implémentations TokenCredential décrites dans cet article.

Cet article aborde les sujets suivants :

Pour résoudre les problèmes d’authentification des informations d’identification utilisateur, consultez Résoudre les problèmes d’authentification des informations d’identification utilisateur.

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 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 yes pour Treat application as a public client.

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 aux autorisations d’API et activez Microsoft Graph et les ressources auxquelles vous souhaitez accéder, telles que Key Vault.

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 Key Vault Secret pour Java à l’aide des informations d’identification DeviceCodeCredential sur un appareil IoT.

/**
 * Authenticate with device code credential.
 */
DeviceCodeCredential deviceCodeCredential = new DeviceCodeCredentialBuilder()
    .challengeConsumer(challenge -> {
    // Lets the user know about 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 enregistre 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.

/**
 * Authenticate interactively in the browser.
 */
InteractiveBrowserCredential interactiveBrowserCredential = new InteractiveBrowserCredentialBuilder()
    .clientId("<your app client ID>")
    .redirectUrl("YOUR_APP_REGISTERED_REDIRECT_URL")
    .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 Nom d’utilisateur/mot de passe

Les UsernamePasswordCredential permettent d’authentifier une application cliente publique à l’aide des informations d’identification de l’utilisateur qui ne nécessitent pas d’authentification multifacteur. 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 UsernamePasswordCredential. L’authentification multifacteur ne doit pas être activée pour l’utilisateur.

/**
 * Authenticate with username, password.
 */
UsernamePasswordCredential usernamePasswordCredential = new UsernamePasswordCredentialBuilder()
    .clientId("<your app client ID>")
    .username("<your username>")
    .password("<your password>")
    .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(usernamePasswordCredential)
    .buildClient();

Pour en savoir plus, consultez Plateforme d’identités Microsoft et informations d’identification du mot de passe du propriétaire de la ressource OAuth 2.0.

Étapes suivantes

Cet article a abordé l’authentification avec des informations d’identification d’utilisateur. 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 des informations d’identification de l’utilisateur, consultez Résoudre les problèmes d’authentification des informations d’identification utilisateur.

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.