Partager via


Configurer les options d’authentification dans une application Android à l’aide d’Azure AD B2C

Important

À compter du 1er mai 2025, Azure AD B2C ne sera plus disponible pour les nouveaux clients. Pour plus d’informations, consultez notre FAQ.

Cet article explique comment activer, personnaliser et améliorer l’expérience d’authentification Azure Active Directory B2C (Azure AD B2C) pour votre application Android.

Avant de commencer, familiarisez-vous avec les articles suivants :

Utiliser un domaine personnalisé

En utilisant un domaine personnalisé, vous pouvez entièrement personnaliser l’URL d’authentification. Du point de vue de l’utilisateur, les utilisateurs restent sur votre domaine pendant le processus d’authentification, plutôt que d’être redirigés vers le nom de domaine Azure AD B2C b2clogin.com.

Pour supprimer toutes les références à « b2c » dans l’URL, vous pouvez également remplacer votre nom de locataire B2C, contoso.onmicrosoft.com, dans l’URL de demande d’authentification par votre GUID d’ID de locataire. Par exemple, vous pouvez passer https://fabrikamb2c.b2clogin.com/contoso.onmicrosoft.com/ à https://account.contosobank.co.uk/<tenant ID GUID>/.

Pour utiliser un domaine personnalisé et votre ID de locataire dans l’URL d’authentification, suivez les instructions de l’option Activer les domaines personnalisés. Recherchez votre bibliothèque d’authentification Microsoft (objet de configuration MSAL), puis mettez à jour les autorités avec votre nom de domaine personnalisé et votre ID de locataire.

Le code Kotlin suivant montre l’objet de configuration MSAL avant la modification :

val parameters = AcquireTokenParameters.Builder()
        .startAuthorizationFromActivity(activity)
        .fromAuthority("https://contoso.b2clogin.com/fabrikamb2c.contoso.com/B2C_1_susi")
        // More settings here
        .build()

b2cApp!!.acquireToken(parameters)

Le code Kotlin suivant montre l’objet de configuration MSAL après la modification :

val parameters = AcquireTokenParameters.Builder()
        .startAuthorizationFromActivity(activity)
        .fromAuthority("https://custom.domain.com/00000000-0000-0000-0000-000000000000/B2C_1_susi")
        // More settings here
        .build()

b2cApp!!.acquireToken(parameters)

Préremplir le nom de connexion

Pendant un parcours utilisateur de connexion, votre application peut cibler un utilisateur spécifique. Lorsqu’une application cible un utilisateur, elle peut spécifier dans la demande d’autorisation le login_hint paramètre de requête avec le nom de connexion de l’utilisateur. Azure AD B2C remplit automatiquement le nom de connexion, et l’utilisateur doit fournir uniquement le mot de passe.

Pour préremplir le nom de connexion, procédez comme suit :

  1. Si vous utilisez une stratégie personnalisée, ajoutez la requête d’entrée requise comme décrit dans Configurer la connexion directe.
  2. Recherchez votre objet de configuration MSAL, puis ajoutez la withLoginHint() méthode avec l’indicateur de connexion.
val parameters = AcquireTokenParameters.Builder()
    .startAuthorizationFromActivity(activity)
    .withLoginHint("bob@contoso.com") 
    // More settings here
    .build()

b2cApp!!.acquireToken(parameters)

Préélectionner un fournisseur d’identité

Si vous avez configuré le parcours de connexion de votre application pour inclure des comptes sociaux, tels que Facebook, LinkedIn ou Google, vous pouvez spécifier le domain_hint paramètre. Ce paramètre de requête fournit un indicateur à Azure AD B2C sur le fournisseur d’identité sociale qui doit être utilisé pour la connexion. Par exemple, si l’application spécifie domain_hint=facebook.com, le flux de connexion passe directement à la page de connexion Facebook.

Pour rediriger les utilisateurs vers un fournisseur d’identité externe, procédez comme suit :

  1. Vérifiez le nom de domaine de votre fournisseur d’identité externe. Pour plus d’informations, consultez Redirection de la connexion à un fournisseur de réseaux sociaux.
  2. Créez ou utilisez un objet de liste existant pour stocker des paramètres de requête supplémentaires.
  3. Ajoutez le domain_hint paramètre avec le nom de domaine correspondant à la liste (par exemple, facebook.com).
  4. Transmettez la liste des paramètres de requête supplémentaires à la méthode de l’objet de withAuthorizationQueryStringParameters configuration MSAL.
val extraQueryParameters: MutableList<Pair<String, String>> = ArrayList()
extraQueryParameters.add(Pair("domain_hint", "facebook.com"))

val parameters = AcquireTokenParameters.Builder()
    .startAuthorizationFromActivity(activity)
    .withAuthorizationQueryStringParameters(extraQueryParameters) 
    // More settings here
    .build()

b2cApp!!.acquireToken(parameters)

Spécifier la langue de l’interface utilisateur

La personnalisation de la langue dans Azure AD B2C permet à votre flux utilisateur de prendre en charge diverses langues en fonction des besoins de vos clients. Pour plus d’informations, consultez Personnalisation de la langue.

Pour définir la langue par défaut, procédez comme suit :

  1. Configurez la personnalisation de la langue.
  2. Créez ou utilisez un objet de liste existant pour stocker des paramètres de requête supplémentaires.
  3. Ajoutez le paramètre avec le ui_locales code de langue correspondant à la liste (par exemple, en-us).
  4. Transmettez la liste des paramètres de requête supplémentaires à la méthode de l’objet de withAuthorizationQueryStringParameters configuration MSAL.
val extraQueryParameters: MutableList<Map.Entry<String, String>> = ArrayList()

val mapEntry   = object : Map.Entry<String, String> {
      override val key: String = "ui_locales"
      override val value: String = "en-us"
    }   
    
extraQueryParameters.add(mapEntry )

val parameters = AcquireTokenParameters.Builder()
    .startAuthorizationFromActivity(activity)
    .withAuthorizationQueryStringParameters(extraQueryParameters) 
    // More settings here
    .build()

b2cApp!!.acquireToken(parameters)

Passer un paramètre de chaîne de requête personnalisé

Avec des stratégies personnalisées, vous pouvez passer un paramètre de chaîne de requête personnalisé. Un bon exemple de cas d’usage consiste à modifier dynamiquement le contenu de la page.

Pour passer un paramètre de chaîne de requête personnalisé, procédez comme suit :

  1. Configurez l’élément ContentDefinitionParameters .
  2. Créez ou utilisez un objet de liste existant pour stocker des paramètres de requête supplémentaires.
  3. Ajoutez le paramètre de chaîne de requête personnalisé, tel que campaignId. Définissez la valeur du paramètre (par exemple, germany-promotion).
  4. Transmettez la liste des paramètres de requête supplémentaires à la méthode de l’objet de withAuthorizationQueryStringParameters configuration MSAL.
val extraQueryParameters: MutableList<Pair<String, String>> = ArrayList()
extraQueryParameters.add(Pair("campaignId", "germany-promotion"))

val parameters = AcquireTokenParameters.Builder()
    .startAuthorizationFromActivity(activity)
    .withAuthorizationQueryStringParameters(extraQueryParameters) 
    // More settings here
    .build()

b2cApp!!.acquireToken(parameters)

Transmission d’indicateur de jeton d’ID

Une application de partie de confiance peut envoyer un jeton web JSON entrant (JWT) dans le cadre de la demande d’autorisation OAuth2. Le jeton entrant est un indicateur de l’utilisateur ou de la demande d’autorisation. Azure AD B2C valide le jeton, puis extrait la revendication.

Pour inclure un indicateur de jeton d’ID dans la demande d’authentification, procédez comme suit :

  1. Dans votre stratégie personnalisée, définissez un indicateur de jeton d’ID de profil technique.
  2. Dans votre code, générez ou achetez un jeton d’ID, puis définissez le jeton sur une variable (par exemple). idToken
  3. Créez ou utilisez un objet de liste existant pour stocker des paramètres de requête supplémentaires.
  4. Ajoutez le id_token_hint paramètre avec la variable correspondante qui stocke le jeton d’ID.
  5. Transmettez la liste des paramètres de requête supplémentaires à la méthode de l’objet de withAuthorizationQueryStringParameters configuration MSAL.
val extraQueryParameters: MutableList<Pair<String, String>> = ArrayList()
extraQueryParameters.add(Pair("id_token_hint", idToken))

val parameters = AcquireTokenParameters.Builder()
    .startAuthorizationFromActivity(activity)
    .withAuthorizationQueryStringParameters(extraQueryParameters) 
    // More settings here
    .build()

b2cApp!!.acquireToken(parameters)

Expérience d’affichage web incorporée

Les navigateurs web sont requis pour l’authentification interactive. Par défaut, la bibliothèque MSAL utilise la vue web système. Pendant la connexion, la bibliothèque MSAL affiche l’affichage web du système Android avec l’interface utilisateur Azure AD B2C.

Pour plus d’informations, consultez l’article Activer l’authentification unique inter-applications sur Android à l’aide de MSAL .

Selon vos besoins, vous pouvez utiliser la vue web incorporée. Il existe des différences visuelles et de comportement d’authentification unique entre la vue web incorporée et l’affichage web système dans MSAL.

Capture d’écran montrant la différence entre l’expérience d’affichage web système et l’expérience d’affichage web incorporée.

Important

Nous vous recommandons d’utiliser la plateforme par défaut, qui est généralement le navigateur système. Le navigateur du système mémorise mieux les utilisateurs déjà connectés. Certains fournisseurs d’identité, tels que Google, ne prennent pas en charge une expérience de vue incorporée.

Pour modifier ce comportement, ouvrez le fichier app/src/main/res/raw/auth_config_b2c.json . Ajoutez ensuite l’attribut authorization_user_agent avec la WEBVIEW valeur. L’exemple suivant montre comment modifier le type d’affichage web en affichage incorporé :

{
  "authorization_user_agent": "WEBVIEW" 
}

Étapes suivantes