Partager via


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 des informations d'identification fournies par l'utilisateur. Cette prise en charge est possible grâce à un ensemble d'implémentations de TokenCredential dont il est question dans cet article.

Cet article aborde les sujets suivants :

Pour résoudre les problèmes d'authentification des informations d'identification de l'utilisateur, consultez Dépannage de l'authentification des informations d'identification de l'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. 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. Accédez à 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 yes pour Treat application as a public client.

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 aux permissions 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 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 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 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 de l'appareil afin d'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.

/**
 * 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, voir Dépannage de l'authentification des informations d'identification de l'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.