Tutorial: Preparación de la aplicación iOS/macOS para la autenticación nativa
Se aplica a: iOS (Swift) macOS (Swift)
En este tutorial se muestra cómo agregar el marco del SDK de autenticación nativa de la Biblioteca de autenticación de Microsoft (MSAL) a la aplicación Swift de iOS/macOS.
En este tutorial, aprenderá a:
- Agregar el marco MSAL a una aplicación de iOS/macOS.
- Crear una instancia del SDK.
Requisitos previos
- Xcode
- Si aún no lo ha hecho, siga las instrucciones de Iniciar sesión de usuarios en una aplicación móvil de iOS (Swift) de ejemplo mediante la autenticación nativa y registrar una aplicación en el inquilino externo. Asegúrese de completar los pasos siguientes:
- Registrar una aplicación.
- Habilitar el cliente público y los flujos de autenticación nativos.
- Conceder permisos de API.
- Crear un flujo de usuario.
- Asociar la aplicación con el flujo de usuario.
- Proyecto iOS/macOS
Agregar el marco MSAL a una aplicación de iOS/macOS
- Abre el proyecto iOS/macOS en Xcode.
- Seleccione Agregar dependencias de paquete... en el menú Archivo.
- Escriba
https://github.com/AzureAD/microsoft-authentication-library-for-objc
como dirección URL del paquete y elija Agregar paquete. - Agregue un nuevo grupo de cadena de claves al proyecto Capacidades. Use
com.microsoft.adalcache
en iOS ycom.microsoft.identity.universalstorage
en macOS.
Para obtener más información y otros mecanismos para agregar MSAL al proyecto, vea el archivo Léame de proyecto.
Creación de una instancia del SDK
Importe la biblioteca MSAL en el controlador de vista agregando
import MSAL
en la parte superior de la claseViewController
.Agregue una variable miembro
nativeAuth
a su claseViewController
agregando el siguiente código justo antes de la funciónviewDidLoad()
:var nativeAuth: MSALNativeAuthPublicClientApplication!
A continuación, agregue el código siguiente a la función
viewDidLoad()
:do { nativeAuth = try MSALNativeAuthPublicClientApplication( clientId: "Enter_the_Application_Id_Here", tenantSubdomain: "Enter_the_Tenant_Subdomain_Here", challengeTypes: [.OOB] ) print("Initialized Native Auth successfully.") } catch { print("Unable to initialize MSAL \(error)") }
Reemplace los siguientes valores por los del Centro de administración Microsoft Entra:
Busque el valor
Enter_the_Application_Id_Here
y sustitúyalo por el Id. de aplicación (cliente) de la aplicación que registró anteriormente.Busque el
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 tiene el subdominio Directory (tenant), aprenda a leer los detalles del inquilino.Los tipos de desafío son una lista de valores que la aplicación usa para notificar a Microsoft Entra sobre el método de autenticación que admite.
- Para flujos de registro e inicio de sesión con código de acceso de un solo uso de correo electrónico, use
[.OOB]
. - Para flujos de registro e inicio de sesión con correo electrónico y contraseña, use
[.OOB, .password]
. - En el caso del autoservicio de restablecimiento de contraseña (SSPR), use
[.OOB]
.
Obtenga más información sobre los tipos de desafío.
- Para flujos de registro e inicio de sesión con código de acceso de un solo uso de correo electrónico, use
Para compilar, seleccione el Producto>Compilación en la barra de herramientas del proyecto.
Opcional: Configuración de registro
MSAL proporciona una API de registro que puede usar para habilitar y configurar el registro. Para ver todos los resultados de depuración de MSAL, agregue el código siguiente al principio de la función viewDidLoad()
:
MSALGlobalConfig.loggerConfig.logLevel = .verbose
MSALGlobalConfig.loggerConfig.setLogCallback { logLevel, message, containsPII in
if !containsPII {
print("MSAL: \(message ?? "")")
}
}
Esto genera todos los registros de depuración de MSAL, lo que puede resultar útil para diagnosticar problemas y aprender cómo funcionan los flujos de autenticación nativos. Para obtener más información sobre cómo configurar los niveles de registro y los procedimientos recomendados, vea Registro en MSAL para iOS/macOS.