Inicio de sesión de usuarios y llamada a una API web protegida en una aplicación de ejemplo de iOS (Swift)
En esta guía se muestra cómo configurar una aplicación móvil de iOS de ejemplo para iniciar sesión a usuarios y llamar a una API web de ASP.NET Core protegida.
En este artículo, realice las tareas siguientes:
- Registro de una aplicación en el centro de administración de Microsoft Entra.
- Adición de una URL de redireccionamiento de la plataforma.
- Habilitación de flujos de clientes públicos.
- Actualice el archivo de ejemplo de código de configuración de iOS para usar su propio identificador externo de Microsoft Entra para los detalles del inquilino del cliente.
- Ejecutar y probar la aplicación móvil iOS de ejemplo.
Requisitos previos
Un inquilino externo. Si no tiene uno ya, suscríbase para obtener una prueba gratuita.
Un registro de API que expone al menos un ámbito (permisos delegados) y un rol de aplicación (permiso de aplicación), como ToDoList.Read. Si aún no lo ha hecho, siga las instrucciones para llamar a una API en una aplicación móvil de iOS de ejemplo para tener una API web de ASP.NET Core protegida funcionalmente. Asegúrese de completar los pasos siguientes:
- Registrar una aplicación de API web.
- Configuración de ámbitos de API.
- Configuración de los roles de aplicación.
- Configuración de notificaciones opcionales.
- Clonación o descarga de la API web de ejemplo.
- Configuración y ejecución de la API web de ejemplo.
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 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.
Vaya 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.
Adición de una dirección URL de redireccionamiento de la plataforma
Para especificar el tipo de aplicación en el registro de la aplicación, siga estos pasos:
- En Administrar, seleccione Autenticación.
- En la página Configuraciones de plataforma, seleccione Agregar una plataforma y, después, seleccione la opción iOS / macOS.
- Escriba el identificador de agrupación del proyecto. Si descargó el código de ejemplo, este valor es
com.microsoft.identitysample.ciam.MSALiOS
. - Seleccione Configurar y guarde la configuración de MSAL que aparezca en el panel Configuración de iOS / macOS para poder especificarla cuando configure la aplicación más tarde.
- Seleccione Listo.
Habilitación del flujo de cliente público
Para identificar la aplicación como cliente público, siga estos pasos:
En Administrar, seleccione Autenticación.
En Configuración avanzada, para Permitir flujos de cliente públicos, seleccione Sí.
Seleccione Guardar para guardar los cambios.
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. Pero 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.
Concesión de permisos de API web a la aplicación de iOS de ejemplo
Una vez que haya registrado la aplicación cliente y la API web, y haya expuesto la API mediante la creación de ámbitos, configure los permisos del cliente para la API siguiendo estos pasos:
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 Permisos configurados, seleccione Agregar un permiso.
Seleccione la pestaña API usadas en mi organización.
En la lista de API, seleccione la API como ciam-ToDoList-api.
Seleccione la opción Permisos delegados.
En la lista de permisos, seleccione ToDoList.Read, ToDoList.ReadWrite (use el cuadro de búsqueda si es necesario).
Seleccione el botón Agregar permisos.
En este momento, ha asignado los permisos correctamente. Sin embargo, dado que se trata de un inquilino del cliente, los propios usuarios consumidores no pueden dar su consentimiento a estos permisos. Para solucionarlo, como administrador debe dar su consentimiento a estos permisos en nombre de todos los usuarios del inquilino:
Seleccione Conceder consentimiento del administrador para el <nombre del inquilino> y, a continuación, pulse Sí.
Seleccione Actualizar, luego compruebe que aparece Concedido para <el nombre de inquilino> en Estado para ambos permisos.
En la lista Permisos configurados, seleccione los permisos ToDoList.Read y ToDoList.ReadWrite, de uno en uno y, a continuación, copie el URI completo del permiso para su uso posterior. El URI de permiso completo tiene un aspecto similar a
api://{clientId}/{ToDoList.Read}
oapi://{clientId}/{ToDoList.ReadWrite}
.
Clonar una aplicación móvil iOS de ejemplo
Para obtener la aplicación de ejemplo, puede clonarla desde GitHub o descargarla como archivo .zip.
Para clonar la muestra, abra un símbolo del sistema y navegue hasta donde desea crear el proyecto, e introduzca el siguiente comando:
git clone https://github.com/Azure-Samples/ms-identity-ciam-browser-delegated-ios-sample.git
Configurar la aplicación móvil iOS de ejemplo
Para habilitar la autenticación y el acceso a los recursos de la API web, configure el ejemplo siguiendo estos pasos:
En Xcode, abra el proyecto que clonó.
Abra el archivo /MSALiOS/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_Redirect_URI_Here
y reemplácelo por el valor de kRedirectUri en el archivo de configuración de la Biblioteca de autenticación de Microsoft (MSAL) que descargó anteriormente al agregar la URL de redireccionamiento de la plataforma.Enter_the_Protected_API_Full_URL_Here
y reemplácelo por la dirección URL de la API web. Enter_the_Protected_API_Full_URL_Here debe incluir la URL base (la dirección URL de la API web implementada) y el punto de conexión (/api/todolist) para la API web de ASP.NET.Enter_the_Protected_API_Scopes_Here
y reemplácelo por los ámbitos registrados en Conceder permisos de API web a la aplicación de iOS de ejemplo.Enter_the_Tenant_Subdomain_Here
y reemplácelo por el subdominio del directorio (inquilino). Por ejemplo, si el dominio principal del inquilino escontoso.onmicrosoft.com
, usecontoso
. Si no conoce el subdominio del inquilino, aprenda a leer los detalles del inquilino.
Configuró la aplicación y está lista para su ejecución.
Ejecución de una aplicación de iOS de ejemplo y llamada a la API web
Para compilar y ejecutar la aplicación, siga estos pasos:
- 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.
- Seleccione Adquirir token de forma interactiva para solicitar un token de acceso.
- Seleccione API - Perform GET para llamar a la API web de ASP.NET Core configurada anteriormente. Una llamada correcta a la API web devuelve HTTP
200
, mientras que HTTP403
significa acceso no autorizado.