Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
A partir del 1 de mayo de 2025, Azure AD B2C ya no estará disponible para la compra por parte de nuevos clientes. Obtenga más información en nuestras preguntas más frecuentes.
En este artículo se describe cómo habilitar, personalizar y mejorar la experiencia de autenticación de Azure Active Directory B2C (Azure AD B2C) para la aplicación Android.
Antes de empezar, familiarícese con los siguientes artículos:
- Configuración de la autenticación en una aplicación Android de ejemplo mediante Azure AD B2C
- Habilitación de la autenticación en su propia aplicación Android mediante Azure AD B2C
Uso de un dominio personalizado
Mediante el uso de un dominio personalizado, puede personalizar completamente la dirección URL de autenticación. Desde la perspectiva del usuario, los usuarios permanecen en el dominio durante el proceso de autenticación, en lugar de redirigirse al nombre de dominio de Azure AD B2C b2clogin.com.
También puede reemplazar el nombre del inquilino de B2C (contoso.onmicrosoft.com) en la dirección URL de la solicitud de autenticación por el GUID del id. de inquilino para quitar todas las referencias a "b2c" en la dirección URL. Por ejemplo, puede cambiar https://fabrikamb2c.b2clogin.com/contoso.onmicrosoft.com/
a https://account.contosobank.co.uk/<tenant ID GUID>/
.
Para usar un dominio personalizado y el identificador de inquilino en la dirección URL de autenticación, siga las instrucciones de Habilitar dominios personalizados. Busque la biblioteca de autenticación de Microsoft (objeto de configuración de MSAL) y, a continuación, actualice las autoridades con el nombre de dominio personalizado y el identificador de inquilino.
El siguiente código de Kotlin muestra el objeto de configuración de MSAL antes del cambio:
val parameters = AcquireTokenParameters.Builder()
.startAuthorizationFromActivity(activity)
.fromAuthority("https://contoso.b2clogin.com/fabrikamb2c.contoso.com/B2C_1_susi")
// More settings here
.build()
b2cApp!!.acquireToken(parameters)
El siguiente código de Kotlin muestra el objeto de configuración de MSAL después del cambio:
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)
Rellenar previamente el nombre de usuario
Durante un proceso de inicio de sesión del usuario, la aplicación podría dirigirse a un usuario específico. Cuando una aplicación tiene como destino un usuario, puede especificar en la solicitud de autorización el login_hint
parámetro de consulta con el nombre de inicio de sesión del usuario. Azure AD B2C rellena automáticamente el nombre de inicio de sesión y el usuario debe proporcionar solo la contraseña.
Para rellenar previamente el nombre de inicio de sesión, haga lo siguiente:
- Si usa una directiva personalizada, agregue la notificación de entrada necesaria, como se describe en Configuración del inicio de sesión directo.
- Busque el objeto de configuración de MSAL y agregue el
withLoginHint()
método con la sugerencia de inicio de sesión.
val parameters = AcquireTokenParameters.Builder()
.startAuthorizationFromActivity(activity)
.withLoginHint("bob@contoso.com")
// More settings here
.build()
b2cApp!!.acquireToken(parameters)
Preseleccionar un proveedor de identidades
Si configuró el recorrido de inicio de sesión de la aplicación para incluir cuentas sociales, como Facebook, LinkedIn o Google, puede especificar el domain_hint
parámetro . Este parámetro de consulta proporciona una sugerencia a Azure AD B2C sobre el proveedor de identidades sociales que se debe usar para el inicio de sesión. Por ejemplo, si la aplicación especifica domain_hint=facebook.com
, el flujo de inicio de sesión va directamente a la página de inicio de sesión de Facebook.
Para redirigir a los usuarios a un proveedor de identidades externo, haga lo siguiente:
- Compruebe el nombre de dominio del proveedor de identidades externo. Para obtener más información, consulte Redireccionamiento del inicio de sesión a un proveedor de redes sociales.
- Cree o use un objeto de lista existente para almacenar parámetros de consulta adicionales.
- Agregue el
domain_hint
parámetro con el nombre de dominio correspondiente a la lista (por ejemplo,facebook.com
). - Pase la lista de parámetros de consulta adicionales al método del objeto de
withAuthorizationQueryStringParameters
configuración de 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)
Especificar el idioma de la interfaz de usuario
La personalización de idioma en Azure AD B2C permite al flujo de usuario adaptarse a diversas lenguas para satisfacer las necesidades de los clientes. Para obtener más información, consulte Personalización de idioma.
Para establecer el idioma preferido, haga lo siguiente:
- Configurar la personalización del idioma.
- Cree o use un objeto de lista existente para almacenar parámetros de consulta adicionales.
- Agregue el
ui_locales
parámetro con el código de idioma correspondiente a la lista (por ejemplo,en-us
). - Pase la lista de parámetros de consulta adicionales al método del objeto de
withAuthorizationQueryStringParameters
configuración de 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)
Pasar un parámetro de cadena de consulta personalizado
Con las directivas personalizadas, puede pasar un parámetro de cadena de consulta personalizado. Un buen ejemplo de caso de uso es cuando desea cambiar dinámicamente el contenido de la página.
Para pasar un parámetro de cadena de consulta personalizado, haga lo siguiente:
- Configure el elemento ContentDefinitionParameters .
- Cree o use un objeto de lista existente para almacenar parámetros de consulta adicionales.
- Agregue el parámetro de cadena de consulta personalizado, como
campaignId
. Establezca el valor del parámetro (por ejemplo,germany-promotion
). - Pase la lista de parámetros de consulta adicionales al método del objeto de
withAuthorizationQueryStringParameters
configuración de 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)
Paso de una sugerencia de token de identificador
Una aplicación de terceros de confianza puede enviar un JSON Web Token (JWT) entrante como parte de la solicitud de autorización de OAuth2. El token de entrada es una sugerencia sobre el usuario o la solicitud de autorización. Azure AD B2C valida el token y luego extrae la reclamación.
Para incluir una sugerencia de token de identificador en la solicitud de autenticación, haga lo siguiente:
- En la directiva personalizada, defina un perfil técnico de sugerencia para el token de identificador.
- En el código, genere o adquiera un token de identificador y, a continuación, establezca el token en una variable (por ejemplo,
idToken
). - Cree o use un objeto de lista existente para almacenar parámetros de consulta adicionales.
- Agregue el
id_token_hint
parámetro con la variable correspondiente que almacena el token de identificador. - Pase la lista de parámetros de consulta adicionales al método del objeto de
withAuthorizationQueryStringParameters
configuración de 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)
Experiencia de vista web incrustada
Los exploradores web son necesarios para la autenticación interactiva. De forma predeterminada, la biblioteca MSAL usa la vista web del sistema. Durante el inicio de sesión, la biblioteca MSAL abre la vista web del sistema Android con la interfaz de usuario de Azure AD B2C.
Para obtener más información, consulte el artículo Habilitación del inicio de sesión único entre aplicaciones en Android mediante MSAL .
En función de sus requisitos, puede usar la vista web insertada. Hay diferencias de comportamiento de inicio de sesión único y visual entre la vista web insertada y la vista web del sistema en MSAL.
Importante
Se recomienda usar el valor predeterminado de la plataforma, que normalmente es el explorador del sistema. El explorador del sistema es mejor para recordar a los usuarios que han iniciado sesión anteriormente. Algunos proveedores de identidades, como Google, no admiten una experiencia de vista insertada.
Para cambiar este comportamiento, abra el archivo app/src/main/res/raw/auth_config_b2c.json . A continuación, agregue el authorization_user_agent
atributo con el WEBVIEW
valor . En el ejemplo siguiente se muestra cómo cambiar el tipo de vista web a vista incrustada:
{
"authorization_user_agent": "WEBVIEW"
}
Pasos siguientes
- Para más información sobre la configuración de Android, consulte Opciones de configuración de MSAL para Android.