Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: Inquilinos de personal
Inquilinos externos (obtener más información)
Una vez creada la aplicación, aprenderá a configurar el código con los parámetros de registro de la aplicación. Las aplicaciones móviles presentan algunas complejidades relacionadas con la adaptación a su marco de creación.
Bibliotecas de Microsoft que admiten aplicaciones móviles
Las siguientes bibliotecas de Microsoft admiten aplicaciones móviles:
Plataforma | Proyecto en GitHub (en inglés) |
Paquete | Introducción iniciado |
Inicio de sesión de usuarios | Acceder a las API web | Disponibilidad general (GA) o Versión preliminar pública1 |
---|---|---|---|---|---|---|
Android (Java) | MSAL para Android | MSAL | Inicio rápido | ![]() |
![]() |
Disponibilidad general |
Android (Kotlin) | MSAL para Android | MSAL | — | ![]() |
![]() |
Disponibilidad general |
iOS (Swift/Obj-C) | MSAL para iOS y macOS | MSAL | Tutorial | ![]() |
![]() |
Disponibilidad general |
1Los términos de licencia universal de Online Services se aplican a las bibliotecas en la versión preliminar pública.
Creación de instancias de la aplicación
Androide
Las aplicaciones móviles usan la clase PublicClientApplication
. Aquí se muestra cómo crear una instancia:
PublicClientApplication sampleApp = new PublicClientApplication(
this.getApplicationContext(),
R.raw.auth_config);
Ios
Las aplicaciones móviles de iOS necesitan crear una instancia de la clase MSALPublicClientApplication
. Para crear una instancia de la clase, use el código siguiente.
NSError *msalError = nil;
MSALPublicClientApplicationConfig *config = [[MSALPublicClientApplicationConfig alloc] initWithClientId:@"<your-client-id-here>"];
MSALPublicClientApplication *application = [[MSALPublicClientApplication alloc] initWithConfiguration:config error:&msalError];
let config = MSALPublicClientApplicationConfig(clientId: "<your-client-id-here>")
if let application = try? MSALPublicClientApplication(configuration: config){ /* Use application */}
Las propiedades MSALPublicClientApplicationConfig adicionales pueden invalidar la autoridad predeterminada, especificar un URI de redirección o cambiar el comportamiento del almacenamiento en caché del token de MSAL.
Plataforma Universal de Windows (UWP)
En esta sección se explica cómo crear instancias de la aplicación para aplicaciones para UWP.
Creación de instancias de la aplicación
En UWP, la manera más sencilla de crear instancias de la aplicación es mediante el código siguiente. En este código, ClientId
es el GUID de la aplicación registrada.
var app = PublicClientApplicationBuilder.Create(clientId)
.Build();
Otros métodos With<Parameter>
establecen el elemento primario de la interfaz de usuario, invalidan la autoridad predeterminada, especifican un nombre de cliente y una versión para la telemetría, especifican un URI de redirección y especifican el generador HTTP que se va a usar. El generador HTTP podría usarse, por ejemplo, para controlar los servidores proxy y para especificar la telemetría y el registro.
En las secciones siguientes se proporciona más información sobre la creación de instancias de la aplicación.
Especificación de la ventana, la actividad o la interfaz de usuario primaria
En Android, pase la actividad primaria antes de realizar la autenticación interactiva. En iOS, cuando se use un agente, pase ViewController
. Del mismo modo en UWP, puede que quiera pasar la ventana primaria. Se pasa al adquirir el token. Pero al crear la aplicación, también puede especificar una devolución de llamada como delegado que devuelva UIParent
.
IPublicClientApplication application = PublicClientApplicationBuilder.Create(clientId)
.ParentActivityOrWindowFunc(() => parentUi)
.Build();
En Android, se recomienda que use CurrentActivityPlugin
. El código del generador PublicClientApplication
resultante es similar al de este ejemplo:
// Requires MSAL.NET 4.2 or above
var pca = PublicClientApplicationBuilder
.Create("<your-client-id-here>")
.WithParentActivityOrWindow(() => CrossCurrentActivity.Current)
.Build();
Búsqueda de más parámetros de compilación de aplicaciones
Para obtener una lista de todos los métodos que están disponibles en PublicClientApplicationBuilder
, consulte la lista de métodos.
Para obtener una descripción de todas las opciones que se exponen en PublicClientApplicationOptions
, consulte la documentación de referencia.
Tareas de MSAL para iOS y macOS
Estas tareas son necesarias cuando se usa MSAL para iOS y macOS:
- Implementación de la devolución de llamada
openURL
- Habilitación de los grupos de acceso al llavero
- Personalización de los exploradores y las vistas web
Tareas para UWP
En UWP, puede usar redes corporativas. En las siguientes secciones se explican las tareas que debe completar en el escenario corporativo.
Para obtener más información, consulte Consideraciones específicas de UWP con MSAL.NET.
Configuración de la aplicación para usar el agente
En Android e iOS, los agentes permiten:
- Inicio de sesión único (SSO): puede usar el SSO para los dispositivos registrados con Microsoft Entra ID. Al usar SSO, los usuarios no tienen que iniciar sesión en cada aplicación.
- Identificación de dispositivos: esta opción habilita las directivas de acceso condicional relacionadas con los dispositivos de Microsoft Entra. El proceso de autenticación usa el certificado de dispositivo que se creó al unir el dispositivo al área de trabajo.
- Comprobación de identificación de la aplicación: cuando una aplicación llama al agente, pasa su URL de redireccionamiento. A continuación, el agente lo comprueba.
Habilitación del agente para MSAL para Android
Consulte Autenticación asincrónica en Android para obtener información sobre cómo habilitar un agente en Android.
Habilitación del agente para MSAL para iOS y macOS
La autenticación con agente está habilitada de forma predeterminada para los escenarios de Microsoft Entra en MSAL para iOS y macOS.
En las secciones siguientes se proporcionan instrucciones para configurar tu aplicación para la compatibilidad con la autenticación intermediada para iOS y macOS. En los dos conjuntos de instrucciones, algunos de los pasos difieren.
Autenticación asincrónica de MSAL para iOS y macOS
La autenticación con agente está habilitada de forma predeterminada para los escenarios de Microsoft Entra.
Paso 1: Actualizar AppDelegate para controlar la devolución de llamada
Cuando MSAL para iOS y macOS llama al agente, este a su vez vuelve a llamar a la aplicación con el método openURL
. Dado que MSAL espera la respuesta del agente, la aplicación debe cooperar para volver a llamar a MSAL. Para configurar este comportamiento, actualice el archivo AppDelegate.m
para invalidar el método, como se muestra en los ejemplos de código siguientes.
- (BOOL)application:(UIApplication *)app
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
return [MSALPublicClientApplication handleMSALResponse:url
sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]];
}
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
guard let sourceApplication = options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String else {
return false
}
return MSALPublicClientApplication.handleMSALResponse(url, sourceApplication: sourceApplication)
}
Si adoptó UISceneDelegate
en iOS 13 o posterior, coloque la devolución de llamada de MSAL en scene:openURLContexts:
de UISceneDelegate
en su lugar. MSAL handleMSALResponse:sourceApplication:
solo debe llamarse una vez para cada dirección URL.
Para más información, consulte la documentación de Apple.
Paso 2: Registrar un esquema de dirección URL
MSAL para iOS y macOS usa direcciones URL para invocar al agente y devolver su respuesta a la aplicación. Para finalizar el recorrido de ida y vuelta, registre un esquema de dirección URL para la aplicación en el archivo Info.plist
.
Para registrar un esquema para la aplicación:
Prefije el esquema de la dirección URL personalizada con
msauth
.Agregue el identificador del paquete al final del esquema. Siga este patrón:
$"msauth.(BundleId)"
Aquí,
BundleId
identifica su dispositivo de manera exclusiva. Por ejemplo, siBundleId
esyourcompany.xforms
, el esquema de dirección URL esmsauth.com.yourcompany.xforms
.Este esquema de dirección URL se convertirá en parte del URI de redirección que se usa para identificar de forma única la aplicación cuando recibe la respuesta del agente. Asegúrese de que el URI de redirección en el formato
msauth.(BundleId)://auth
esté registrado para su aplicación.<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>msauth.[BUNDLE_ID]</string> </array> </dict> </array>
Paso 3: Agregar LSApplicationQueriesSchemes
Agregue LSApplicationQueriesSchemes
para permitir llamadas a la aplicación Microsoft Authenticator, si está instalada.
Nota
El esquema msauthv3
es necesario si la aplicación se ha compilado con Xcode 11 y versiones posteriores.
Este es un ejemplo sobre cómo agregar LSApplicationQueriesSchemes
:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>msauthv2</string>
<string>msauthv3</string>
</array>
Pasos siguientes
Avance al siguiente artículo de este escenario, Obtención de un token.