Inicio de sesión de usuarios en una aplicación móvil iOS (Swift) de ejemplo mediante autenticación nativa
En esta guía se muestra cómo ejecutar una aplicación de ejemplo de iOS que muestra escenarios de registro, inicio de sesión, cierre de sesión y restablecimiento de contraseñas mediante Id. externa 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 una aplicación móvil nativa de iOS de ejemplo para usar sus propios detalles de inquilino externo.
- Ejecute y pruebe la aplicación móvil nativa iOS de ejemplo.
Requisitos previos
- Xcode
- Un inquilino externo. Si aún no tiene uno, regístrese para una prueba gratuita
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:
Inicie sesión en el Centro de administración de Microsoft Entra al menos como Desarrollador de aplicaciones.
Si tienes acceso a varios inquilinos, usa el icono Configuración en el menú superior para cambiar al inquilino externo desde el menú Directorios y suscripciones.
Ve aIdentidad>Aplicaciones>Registros de aplicaciones.
Seleccione + Nuevo registro.
En la página Registrar una aplicación que aparece;
- Introduzca un Nombre de aplicación significativo que se muestre a los usuarios de la aplicación, por ejemplo ciam-client-app.
- En Tipos de cuenta admitidos, seleccione Solo las cuentas de este directorio organizativo.
Seleccione Registrar.
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:
- 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.
- En Administrar, seleccione Autenticación.
- En Configuración avanzada, permita flujos de cliente públicos:
- Para Habilitar los siguientes flujos de escritorio y móvil seleccione Sí.
- Para Habilitar autenticación nativa, seleccione Sí.
- Seleccione el botón Guardar.
Conceder consentimiento del administrador
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.
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:
- Seleccione Conceder consentimiento del administrador para <nombre del inquilino> y seleccione Sí.
- 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.
Inicie sesión en el Centro de administración de Microsoft Entra al menos como Desarrollador de aplicaciones.
Si tiene acceso a varios inquilinos, asegúrese de usar el directorio que contiene el inquilino externo:
- Seleccione el icono Directorios y suscripciones en la barra de herramientas.
- 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.
En el menú de la barra lateral, seleccione Identidad.
Seleccione External Identities>Flujos de usuario.
Seleccione + Nuevo flujo de usuario.
En la página Crear:
Escriba un nombre para el flujo de usuario, como SignInSignUpSample.
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.
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 Sí, y, a continuación, seleccione Guardar).
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.
Seleccione Crear. El nuevo flujo de usuario aparece en la lista Flujos de usuario. Si es necesario, actualice la página.
Asociar la aplicación al flujo de usuarios
Para que los usuarios del cliente vean la experiencia de registro o de inicio de sesión cuando usan la aplicación, debe asociar la 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.
En el menú de la barra lateral, seleccione Identidad.
Seleccione External Identities y, a continuación, Flujos de usuario.
En la página Flujos de usuario, seleccione el nombre del flujo de usuario que creó anteriormente; por ejemplo, SignInSignUpSample.
En Usar, seleccione Aplicaciones.
Seleccione Agregar una aplicación.
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.
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.
Clonar una aplicación móvil iOS de ejemplo
Abra el Terminal y navegue hasta un directorio donde desee guardar el código.
Clone la aplicación móvil iOS desde GitHub ejecutando el siguiente comando:
git clone https://github.com/Azure-Samples/ms-identity-ciam-native-auth-ios-sample.git
Navegue hasta el directorio donde se clonó el repositorio:
cd ms-identity-ciam-native-auth-ios-sample
Configurar la aplicación móvil iOS de ejemplo
En Xcode, abra el proyecto NativeAuthSampleApp.xcodeproj.
Abra el archivo NativeAuthSampleApp/Configuration.swift.
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 de su inquilino escontoso.onmicrosoft.com
, utilice Contoso. Si no tiene su subdominio de inquilino, obtenga información sobre cómo leer los datos de su inquilino.
Nota:
Recuerde seleccionar un esquema para crear y destino donde ejecutar los productos creados. Cada esquema contiene una lista de dispositivos reales o simulados que representan los destinos disponibles.
Ejecutar y probar una aplicación móvil iOS de ejemplo
Para compilar y ejecutar el código, seleccione Ejecutar en el menú Producto de Xcode. Después de una compilación correcta, Xcode iniciará la aplicación de ejemplo en el simulador.
Esta guía comprueba el uso del código de acceso de un solo uso del correo electrónico. Introduzca una dirección de correo electrónico válida, seleccione Registrarse y abra la pantalla de envío de código:
Una vez introducida su dirección de correo electrónico en la pantalla anterior, la aplicación le enviará un código de verificación. Una vez que envíe el código recibido, la aplicación lo llevará de vuelta a la pantalla anterior y automáticamente iniciará sesión.
Otros escenarios que admite este ejemplo
La aplicación de ejemplo admite los siguientes flujos:
- 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:
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).
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.
Ejecute la aplicación de ejemplo y seleccione el menú de puntos suspensivos (...) para abrir más opciones.
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 Llamar a una API web protegida en una aplicación móvil iOS de ejemplo mediante autenticación nativa para llamar a una API web protegida desde una aplicación móvil Android de ejemplo.