Compartir a través de


Configuración de la autenticación en una aplicación Android de ejemplo mediante Azure AD B2C

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 usa una aplicación Android de ejemplo (Kotlin y Java) para ilustrar cómo agregar la autenticación de Azure Active Directory B2C (Azure AD B2C) a las aplicaciones móviles.

Información general

OpenID Connect (OIDC) es un protocolo de autenticación que se basa en OAuth 2.0. Puede usar OIDC para iniciar sesión de forma segura a los usuarios en una aplicación. En este ejemplo de aplicación móvil se usa la Biblioteca de autenticación de Microsoft (MSAL) con el flujo PKCE del código de autorización OIDC. MSAL es una biblioteca proporcionada por Microsoft que simplifica la adición de compatibilidad de autenticación y autorización a las aplicaciones móviles.

El flujo de inicio de sesión consta de los pasos siguientes:

  1. Los usuarios abren la aplicación y seleccionan Iniciar sesión.
  2. La aplicación abre el explorador del sistema del dispositivo móvil e inicia una solicitud de autenticación a Azure AD B2C.
  3. Los usuarios se registran o inician sesión, restablecen la contraseña o inician sesión con una cuenta social.
  4. Después de que los usuarios inicien sesión correctamente, Azure AD B2C devuelve un código de autorización a la aplicación.
  5. La aplicación realiza las siguientes acciones:
    1. Intercambia el código de autorización a un token de identificador, un token de acceso y un token de actualización.
    2. Lee las notificaciones del token de identificación.
    3. Almacena los tokens en una memoria caché interna para su uso posterior.

Introducción al registro de aplicaciones

Para permitir que la aplicación inicie sesión con Azure AD B2C y llame a una API web, registre dos aplicaciones en el directorio de Azure AD B2C.

  • El registro de aplicaciones móviles permite que la aplicación inicie sesión con Azure AD B2C. Durante el registro de la aplicación, especifique el URI de redirección. El URI de redirección es el punto de conexión al que azure AD B2C redirige a los usuarios después de autenticarse con Azure AD B2C. El proceso de registro de aplicaciones genera un identificador de aplicación, también conocido como identificador de cliente, que identifica de forma única la aplicación móvil (por ejemplo, id. de aplicación : 1).

  • El registro de API web permite que su aplicación llame a una API web protegida. El registro expone los permisos (ámbitos) de la API web. El proceso de registro de la aplicación genera un identificador de aplicación, que identifica de forma exclusiva la API web (por ejemplo, id. de aplicación: 2). Conceda permisos a la aplicación móvil (id. de aplicación: 1) a los ámbitos de la API web (id. de aplicación: 2).

El registro de aplicaciones y la arquitectura de aplicaciones se muestran en los diagramas siguientes:

Diagrama de la aplicación móvil con registros y tokens de llamadas de API web.

Llamada a una API web

Una vez completada la autenticación, los usuarios interactúan con la aplicación, que invoca una API web protegida. La API web usa la autenticación de token de portador. El token de portador es el token de acceso que la aplicación ha obtenido de Azure Active Directory B2C. La aplicación pasa el token en el encabezado de autorización de la solicitud HTTPS.

Authorization: Bearer <access token>

Si el ámbito del token de acceso no coincide con los ámbitos de la API web, la biblioteca de autenticación obtiene un nuevo token de acceso con los ámbitos correctos.

Flujo de cierre de sesión

El flujo de cierre de sesión consta de los siguientes pasos:

  1. En la aplicación, los usuarios cierran sesión.
  2. La aplicación borra sus objetos de sesión y la biblioteca de autenticación borra su caché de tokens.
  3. La aplicación lleva a los usuarios al punto de conexión de cierre de sesión de Azure AD B2C para finalizar la sesión correspondiente a este.
  4. Los usuarios se redirigen de nuevo a la aplicación.

Prerrequisitos

Un equipo que ejecute:

Paso 1: Configuración del flujo de usuario

Cuando los usuarios intentan iniciar sesión en la aplicación, esta inicia una solicitud de autenticación para el punto de conexión de autorización mediante un flujo de usuario. El flujo de usuario define y controla la experiencia del usuario. Al completar los usuarios el flujo de usuario, Azure AD B2C genera un token y, después, redirige a los usuarios de vuelta a la aplicación.

Si aún no lo ha hecho, cree un flujo de usuario o una directiva personalizada. Repita los pasos para crear tres flujos de usuario independientes de la manera siguiente:

  • Un flujo de usuario combinado de inicio de sesión y registro, como susi. Este flujo de usuario también admite la experiencia ¿Olvidó su contraseña?.
  • Un flujo de usuario de edición de perfiles, como edit_profile.
  • Un flujo de usuario de restablecimiento de contraseña, como reset_password.

Azure AD B2C antepone el prefijo B2C_1_ al nombre del flujo de usuario. Por ejemplo, susi se convierte en B2C_1_susi.

Paso 2: Registrar aplicaciones móviles

Cree la aplicación móvil y el registro de la aplicación de API web y especifique los ámbitos de la API web.

Paso 2.1: Registro de la aplicación de API web

Siga estos pasos para crear el registro de aplicación de API web (Id. de aplicación: 2):

  1. Inicie sesión en Azure Portal.

  2. Asegúrese de que usa el directorio que contiene el inquilino de Azure AD B2C. Seleccione el icono Directorios y suscripciones en la barra de herramientas del portal.

  3. En la página Configuración del portal | Directorios y suscripciones, busque el directorio de Azure AD B2C en la lista Nombre de directorio y seleccione Cambiar.

  4. En Azure Portal, busque y seleccione Azure AD B2C.

  5. Seleccione Registros de aplicaciones y luego Nuevo registro.

  6. En Nombre, escriba un nombre para la aplicación (por ejemplo, my-api1). Deje los valores predeterminados para URI de redireccionamiento y Tipos de cuenta admitidos.

  7. Seleccione Registrar.

  8. Una vez completado el registro de la aplicación, seleccione Información general.

  9. Anote el valor Id. de aplicación (cliente) para usarlo más adelante al configurar la aplicación web.

    Captura de pantalla en la que se muestra cómo obtener un id. de aplicación de la API web.

Paso 2.2: Configuración de ámbitos de aplicaciones de API web

  1. Seleccione la aplicación my-api1 que creó (id. de aplicación: 2) para abrir la página Información general.

  2. En Administrar, seleccione Exponer una API.

  3. Junto a URI de id. de aplicación, seleccione el vínculo Establecer. Reemplace el valor predeterminado (GUID) por un nombre único (por ejemplo, tasks-api) y, luego, seleccione Guardar.

    Cuando la aplicación web solicite un token de acceso para la API web, deberá agregar este URI como prefijo para cada ámbito que se defina para la API.

  4. En Ámbitos definidos con esta API, seleccione Agregar un ámbito.

  5. Para crear un ámbito que defina el acceso de lectura a la API, siga estos pasos:

    1. Para Nombre de ámbito, escriba tasks.read.
    2. Para Nombre para mostrar del consentimiento del administrador, escriba Acceso de lectura a la API de tareas.
    3. Para Descripción del consentimiento del administrador, escriba Permite el acceso de lectura a la API de tareas.
  6. Selecciona la opción Agregar un ámbito.

  7. Seleccione Agregar un ámbito y agregue una opción que defina el acceso de escritura en la API:

    1. Para Nombre de ámbito, escriba tasks.write.
    2. Para Nombre para mostrar del consentimiento del administrador, escriba Acceso de escritura a la API de tareas.
    3. Para Descripción del consentimiento del administrador, escriba Permite el acceso de escritura a la API de tareas.
  8. Selecciona la opción Agregar un ámbito.

Paso 2.3: Registrar la aplicación móvil

Para crear el registro de aplicaciones móviles, haga lo siguiente:

  1. Inicie sesión en Azure Portal.

  2. Seleccione Registros de aplicaciones y luego Nuevo registro.

  3. En Nombre, escriba un nombre para la aplicación (por ejemplo, android-app1).

  4. En Tipos de cuenta compatibles, seleccione Cuentas en cualquier proveedor de identidades o directorio de la organización (para autenticar usuarios con flujos de usuario).

  5. En URI de redirección, seleccione Cliente público o nativo (móvil y escritorio) y, después, en el cuadro URL, escriba uno de los siguientes URI:

    • Para el ejemplo de Kotlin: msauth://com.azuresamples.msalandroidkotlinapp/1wIqXSqBj7w%2Bh11ZifsnqwgyKrY%3D
    • Para el ejemplo de Java: msauth://com.azuresamples.msalandroidapp/1wIqXSqBj7w%2Bh11ZifsnqwgyKrY%3D
  6. Seleccione Registrar.

  7. Una vez completado el registro de la aplicación, seleccione Información general.

  8. Registre el identificador de aplicación (cliente) para su uso posterior, al configurar la aplicación móvil.

    Captura de pantalla en la que se resalta el identificador de aplicación de Android

Paso 2.4: Concesión de permisos de aplicación móvil para la API web

Si desea conceder permisos a la aplicación (identificador de aplicación: 1), siga estos pasos:

  1. Seleccione Registros de aplicaciones y, luego, la aplicación que creó (identificador de aplicación: 1).

  2. En Administrar, seleccione Permisos de API.

  3. En Permisos configurados, seleccione Agregar un permiso.

  4. Seleccione la pestaña Mis API.

  5. Seleccione la API (identificador de aplicación:2) a la que la aplicación web debe tener acceso. Por ejemplo, escriba my-api1.

  6. En Permiso, expanda Tareas y, a continuación, seleccione los ámbitos que definió anteriormente; por ejemplo, tasks.read y tasks.write.

  7. Seleccione Agregar permisos.

  8. Seleccione Conceder consentimiento de administrador para <el nombre de inquilino>.

  9. Seleccione .

  10. Seleccione Actualizar y compruebe que aparece Granted for... (Concedido para...) en Estado para ambos ámbitos.

  11. En la lista Permisos configurados, seleccione el ámbito y copie el nombre completo del ámbito.

    Captura de pantalla del panel de permisos configurados en que se muestran los permisos de acceso de lectura concedidos.

Paso 3: Obtención del ejemplo de aplicación móvil Android

Realice cualquiera de las siguientes acciones:

  • Descargue cualquiera de estos ejemplos:

    Extraiga el archivo .zip de ejemplo en la carpeta de trabajo.

  • Clone la aplicación móvil Android de ejemplo desde GitHub.

    git clone https://github.com/Azure-Samples/ms-identity-android-kotlin
    

Paso 4: Configuración de la API web de ejemplo

En este ejemplo se adquiere un token de acceso con los ámbitos pertinentes que la aplicación móvil puede usar para una API web. Para llamar a una API web desde el código, haga lo siguiente:

  1. Use una API web existente o cree una nueva. Para más información, consulte Habilitación de la autenticación en su propia API web mediante Azure AD B2C.
  2. Cambie el código de ejemplo para llamar a una API web.

Paso 5: Configuración de la aplicación móvil de ejemplo

Abra el proyecto de ejemplo con Android Studio u otro editor de código y, a continuación, abra el archivo /app/src/main/res/raw/auth_config_b2c.json .

El archivo de configuración auth_config_b2c.json contiene información sobre el proveedor de identidades de Azure AD B2C. La aplicación móvil usa esta información para establecer una relación de confianza con Azure AD B2C, iniciar y cerrar la sesión de los usuarios, adquirir tokens y validarlos.

Actualice las siguientes propiedades de configuración de la aplicación:

Clave Importancia
client_id El identificador de la aplicación móvil del paso 2.3.
redirect_uri El URI de redirección de la aplicación móvil desde el paso 2.3.
autoridades de La autoridad es una dirección URL que indica un directorio desde el que MSAL puede solicitar tokens. Utilice el formato siguiente: https://<your-tenant-name>.b2clogin.com/<your-tenant-name>.onmicrosoft.com/<your-sign-in-sign-up-policy>. Reemplace por <your-tenant-name> el nombre del inquilino de Azure AD B2C. A continuación, reemplace por <your-sign-in-sign-up-policy> los flujos de usuario o la directiva personalizada que creó en el paso 1.

Abra la B2CConfiguration clase y actualice los siguientes miembros de clase:

Clave Importancia
Políticas Lista de flujos de usuario o directivas personalizadas que creó en el paso 1.
azureAdB2CHostName Primera parte del nombre de inquilino de Azure AD B2C (por ejemplo, https://contoso.b2clogin.com).
Nombre del Inquilino El inquilino de Azure AD B2C completo nombre de inquilino (por ejemplo, contoso.onmicrosoft.com).
Ámbitos Los ámbitos de la API web que creaste en el paso 2.4.

Paso 6: Ejecución y prueba de la aplicación móvil

  1. Compile y ejecute el proyecto.

  2. En la parte superior izquierda, seleccione el icono de hamburguesa (también denominado icono de menú contraído), como se muestra aquí:

    Captura de pantalla que resalta el menú hamburguesa o el menú contraído, icono.

  3. En el panel izquierdo, seleccione Modo B2C.

    Captura de pantalla que resalta el comando

  4. Seleccione Ejecutar flujo de usuario.

    Captura de pantalla que resalta el botón

  5. Regístrese o inicie sesión con su cuenta local o social de Azure AD B2C.

  6. Después de la autenticación correcta, verá el nombre para mostrar en el panel modo B2C .

    Captura de pantalla que muestra una autenticación correcta, con la directiva y el usuario que ha iniciado sesión se muestran.

Pasos siguientes

Obtenga información sobre cómo: