Inicio de sesión de usuarios en una aplicación móvil de Android (Kotlin) de ejemplo mediante la autenticación nativa

En esta guía se muestra cómo ejecutar una aplicación de ejemplo de Android que muestra escenarios de registro, inicio de sesión, cierre de sesión y restablecimiento de contraseña mediante la autenticación nativa de Microsoft Entra.

En este artículo aprenderá a:

  • Registre la aplicación en el inquilino externo.
  • Habilite el cliente público y los flujos de autenticación nativos.
  • Cree un flujo de usuario en el inquilino externo.
  • Asocie su aplicación al flujo de usuarios.
  • Actualice el archivo de ejemplo de código de configuración de Android para usar su propio identificador externo de Microsoft Entra para obtener detalles del inquilino externo.
  • Ejecute y pruebe la aplicación móvil Android nativa de ejemplo.

Requisitos previos

Registrar una aplicación

Para permitir que su aplicación inicie la sesión de los usuarios con Microsoft Entra, id. externa de Microsoft Entra debe tener en cuenta la aplicación que haya creado. El registro de la aplicación establece una relación de confianza entre la aplicación y Microsoft Entra. Al registrar una aplicación, External ID genera un identificador único conocido como Id. de aplicación (cliente), un valor que se usa para identificar la aplicación al crear solicitudes de autenticación.

En los pasos siguientes, se muestra cómo registrar una aplicación en el centro de administración de Microsoft Entra:

  1. Inicie sesión en el Centro de administración de Microsoft Entra al menos como Desarrollador de aplicaciones.

  2. Si tiene acceso a varios inquilinos, use el icono Configuración en el menú superior para cambiar al inquilino externo desde el menú Directorios y suscripciones.

  3. Vaya aIdentidad>Aplicaciones>Registros de aplicaciones.

  4. Seleccione + Nuevo registro.

  5. En la página Registrar una aplicación que aparece;

    1. Introduzca un Nombre de aplicación significativo que se muestre a los usuarios de la aplicación, por ejemplo ciam-client-app.
    2. En Tipos de cuenta admitidos, seleccione Solo las cuentas de este directorio organizativo.
  6. Seleccione Registrar.

  7. Se muestra el panel Información general de la aplicación tras registrarse correctamente. Registre el Id. de la aplicación (cliente) que se usará en el código fuente de la aplicación.

Habilitación de flujos de autenticación nativa y cliente público

Para especificar que esta aplicación es un cliente público y puede usar la autenticación nativa, habilite el cliente público y los flujos de autenticación nativos:

  1. En la página registros de aplicaciones, seleccione el registro de aplicaciones para el que desea habilitar flujos de autenticación nativa y cliente público.
  2. En Administrar, seleccione Autenticación.
  3. En Configuración avanzada, permita flujos de cliente públicos:
    1. Para Habilitar los siguientes flujos de escritorio y móvil seleccione .
    2. Para Habilitar autenticación nativa, seleccione .
  4. Seleccione el botón Guardar.
  1. En la página Registros de aplicaciones, seleccione la aplicación que creó (como ciam-client-app) para abrir la página Información general.

  2. En Administrar, seleccione Permisos de API. En la lista Permisos configurados, a la aplicación se le ha asignado el permiso User.Read. Sin embargo, como el inquilino es un inquilino externo, los propios usuarios del consumidor no pueden dar su consentimiento a este permiso. Como administrador, debe dar el consentimiento a este permiso en nombre de todos los usuarios del inquilino:

    1. Seleccione Conceder consentimiento del administrador para <nombre del inquilino> y seleccione .
    2. Seleccione Actualizar y luego compruebe que aparece Concedido para <nombre del inquilino> en Estado para ambos ámbitos.

Creación de un flujo de usuario

Siga estos pasos para crear un flujo de usuario.

  1. Inicie sesión en el Centro de administración de Microsoft Entra al menos como Desarrollador de aplicaciones.

  2. Si tiene acceso a varios inquilinos, asegúrese de usar el directorio que contiene el inquilino externo:

    1. Seleccione el icono Directorios y suscripciones en la barra de herramientas.
    2. En la página Configuración del portal | Directorios y suscripciones, busque el directorio de inquilino externo en la lista Nombre de directorio y, después, seleccione Cambiar.
  3. En el menú de la barra lateral, seleccione Identidad.

  4. Seleccione External Identities>Flujos de usuario.

  5. Seleccione + Nuevo flujo de usuario.

  6. En la página Crear:

    1. Escriba un nombre para el flujo de usuario, como SignInSignUpSample.

    2. En la lista Proveedores de identidades, seleccione Cuentas de correo electrónico. Este proveedor de identidades permite a los usuarios iniciar sesión o registrarse con su dirección de correo electrónico.

    3. En Cuentas de correo electrónico, puede seleccionar una de las dos opciones. En este tutorial, seleccione Código de acceso de un solo uso de correo electrónico.

      • Correo electrónico con contraseña: permite a los nuevos usuarios registrarse e iniciar sesión con una dirección de correo electrónico como nombre de inicio de sesión y una contraseña como credencial del primer factor.
      • Código de acceso de un solo uso de correo electrónico: permite a los nuevos usuarios registrarse e iniciar sesión con una dirección de correo electrónico como nombre de inicio de sesión y un código de acceso de un solo uso como credencial de primer factor. Para que esta opción esté disponible en el nivel de flujo de usuario, asegúrese de habilitar el código de acceso de un solo uso (OTP) de correo electrónico en el nivel de inquilino (seleccione Todos los proveedores de identidades y, a continuación, para Código de acceso de un solo uso de correo electrónico seleccione Configurado, seleccione la opción , y, a continuación, seleccione Guardar).
    4. En Atributos de usuario, puede elegir los atributos que desea recopilar del usuario al registrarse. Para esta guía, seleccione País o región y Ciudad.

  7. Seleccione Crear. El nuevo flujo de usuario aparece en la lista Flujos de usuario. Si es necesario, actualice la página.

Asociación de la aplicación con el flujo de usuario

Para que los usuarios clientes vean la experiencia de registro o inicio de sesión cuando utilizan su aplicación, debe asociar su aplicación a un flujo de usuario. Aunque muchas aplicaciones se pueden asociar a su flujo de usuario, una sola aplicación solo se puede asociar a un flujo de usuario.

  1. En el menú de la barra lateral, seleccione Identidad.

  2. Seleccione External Identities y, a continuación, Flujos de usuario.

  3. En la página Flujos de usuario, seleccione el nombre del flujo de usuario que creó anteriormente; por ejemplo, SignInSignUpSample.

  4. En Usar, seleccione Aplicaciones.

  5. Seleccione Agregar una aplicación.

  6. Seleccione la aplicación de la lista, como ciam-client-app, o use el cuadro de búsqueda para buscar la aplicación y selecciónela.

  7. Elija Seleccionar.

Una vez que asocie su aplicación con un flujo de usuarios, puede probar su flujo de usuarios simulando la experiencia de registro o inicio de sesión de un usuario con su aplicación desde el centro de administración de Microsoft Entra. Para ello, siga los pasos descritos en Prueba del flujo de usuario de registro e inicio de sesión.

Clonación de una aplicación móvil Android de ejemplo

  1. Abra Terminal y vaya a un directorio donde desea conservar el código.

  2. Clone la aplicación desde GitHub mediante la ejecución del comando siguiente:

    git clone https://github.com/Azure-Samples/ms-identity-ciam-native-auth-android-sample 
    

Configuración de la aplicación móvil Android de ejemplo

  1. En Android Studio, abra el proyecto que ha clonado.

  2. Abra el archivo app/src/main/res/raw/native_auth_sample_app_config.json.

  3. Busque el marcador de posición:

    • Enter_the_Application_Id_Here y reemplácelo por el identificador de aplicación (cliente) de la aplicación que registró anteriormente.
    • Enter_the_Tenant_Subdomain_Here y reemplácelo por el subdominio del directorio (inquilino). Por ejemplo, si el dominio principal del inquilino es contoso.onmicrosoft.com, use contoso. Si no conoce el subdominio del inquilino, aprenda a leer los detalles del inquilino.

Ya ha configurado la aplicación y está lista para ejecutarse.

Ejecución y prueba de la aplicación móvil Android de ejemplo

Para compilar y ejecutar la aplicación, siga estos pasos:

  1. En la barra de herramientas, seleccione la aplicación en el menú De configuraciones de ejecución.

  2. En el menú del dispositivo de destino, seleccione el dispositivo en el que quiere ejecutar la aplicación.

    Si no tiene ningún dispositivo configurado, debe crear un dispositivo virtual Android para usar Android Emulator o conectar un dispositivo Android físico.

  3. Haga clic en el botón Ejecutar. La aplicación abre la pantalla Correo electrónico y OTP.

    Captura de pantalla de la solicitud del usuario para escribir el correo electrónico en la aplicación Android.

  4. Escriba una dirección de correo electrónico válida y seleccione el botón Registrarse. La aplicación abre la pantalla enviar código y recibe un código OTP en la dirección de correo electrónico.

    Captura de pantalla de la solicitud del usuario para escribir el código de acceso de un solo uso en la aplicación Android.

  5. Escriba el código OTP que recibe en la bandeja de entrada de correo electrónico y seleccione Siguiente. Si el registro se realiza correctamente, la aplicación inicia sesión automáticamente. Si no recibe el código OTP en la bandeja de entrada de correo electrónico, puede volver a enviarlo después de un tiempo seleccionando Volver a enviar código de acceso.

    Captura de pantalla que muestra que el inicio de sesión se completó correctamente en la aplicación Android.

  6. Para cerrar la sesión, seleccione el botón Cerrar sesión.

Otros escenarios que admite este ejemplo

Esta aplicación de ejemplo también admite los siguientes flujos de autenticación:

  • El correo electrónico y la contraseña cubren los flujos de inicio de sesión o registro con un correo electrónico con contraseña.
  • Correo electrónico y registro de contraseña con atributos de usuario cubre el registro con correo electrónico y contraseña, y el envío de atributos de usuario.
  • El restablecimiento de contraseña cubre el autoservicio de restablecimiento de contraseña (SSPR).
  • El acceso a API protegidas cubre la llamada a una API protegida luego de que el usuario se registre o inicie sesión correctamente y adquiera un token de acceso.
  • La reserva en el navegador web cubre el uso de la autenticación basada en navegador como mecanismo alternativo cuando el usuario no puede completar la autenticación a través de la autenticación nativa por cualquier motivo.

Prueba del correo electrónico con flujo de contraseña

En esta sección, se prueba el flujo de correo electrónico con contraseña, con sus variantes como, el registro de correo electrónico con contraseña con atributos de usuario y SSPR:

  1. Siga los pasos de creación de un flujo de usuariopara crear un nuevo flujo de usuario, pero esta vez seleccione Correo electrónico con contraseña como método de autenticación. Debe configurar País o región y Ciudad como atributos de usuario. Como alternativa, puede modificar el flujo de usuario existente para usar correo electrónico con contraseña (seleccione Identidades externas>Flujos de usuario>SignInSignUpSample>Proveedores de identidades>Correo electrónico con contraseña>Guardar).

  2. Siga los pasos descritos en Asociación de la aplicación con el nuevo flujo de usuario para agregar una aplicación al nuevo flujo de usuario.

  3. Ejecute la aplicación de ejemplo y seleccione el menú de puntos suspensivos (...) para abrir más opciones.

  4. Seleccione el escenario que desea probar, como Correo electrónico y contraseña o Registro de correo electrónico y contraseña con atributos de usuario o Restablecimiento de contraseña, y luego siga las indicaciones. Para probar el Restablecimiento de contraseña, primero debe registrar un usuario y Habilitar el código de acceso de un solo uso de correo electrónico para todos los usuarios del inquilino.

Prueba de una llamada a un flujo de API protegido

Siga los pasos descritos en Llamada a una API web protegida en una aplicación móvil Android de ejemplo mediante la autenticación nativa para llamar a una API web protegida desde una aplicación móvil Android de ejemplo.

Pasos siguientes