Exploración de la biblioteca de autenticación de Microsoft
La biblioteca de autenticación de Microsoft (MSAL) se puede usar para proporcionar acceso seguro a Microsoft Graph, otras API de Microsoft o a su propia API web. MSAL es compatible con muchas arquitecturas y plataformas de aplicación distintas, incluidas .NET, JavaScript, Java, Python, Android e iOS.
MSAL ofrece varias formas de obtener tokens, con una API coherente para muchas plataformas. Usar MSAL brinda las ventajas siguientes:
- No es necesario usar directamente las bibliotecas de OAuth ni el código en el protocolo en la aplicación.
- Adquiere tokens en nombre de un usuario o en nombre de una aplicación (cuando se aplica a la plataforma).
- Mantiene una caché de tokens y actualiza los tokens de forma automática cuando están próximos a expirar. No es necesario que el usuario controle la expiración de los tokens.
- Le ayuda a especificar qué audiencia quiere que inicie sesión en la aplicación.
- Lo ayuda a configurar la aplicación a partir de archivos de configuración.
- Lo ayuda a solucionar problemas de la aplicación mediante la exposición de excepciones, registros y telemetría que requieren acción.
Escenarios y tipos de aplicación
Dentro de MSAL, es posible adquirir un token desde muchos tipos de aplicación: aplicaciones web, API web, aplicaciones de una sola página (JavaScript), aplicaciones móviles y nativas, así como aplicaciones del lado servidor y demonios. MSAL admite actualmente las plataformas y marcos que se enumeran en la tabla siguiente.
Biblioteca | Plataformas y marcos compatibles |
---|---|
MSAL para Android | Android |
MSAL Angular | Aplicaciones de una sola página con los marcos de trabajo Angular y Angular.js |
MSAL para iOS y macOS | iOS y macOS |
MSAL Go (versión preliminar) | Windows, macOS, Linux |
Java de MSAL | Windows, macOS, Linux |
MSAL.js | Marcos de trabajo JavaScript/TypeScript, como Vue.js, Ember.js, o Durandal.js |
MSAL.NET | .NET Framework, .NET Core, Xamarin Android, Xamarin iOS, Plataforma universal de Windows |
MSAL Node | Aplicaciones web con Express, aplicaciones de escritorio con Electron y aplicaciones de consola multiplataforma |
MSAL Python | Windows, macOS, Linux |
MSAL React | Aplicaciones de una sola página con React y bibliotecas basadas en React (Next.js y Gatsby.js) |
Flujos de autenticación
En la tabla siguiente se muestran algunos de los distintos flujos de autenticación que proporciona la biblioteca de autenticación de Microsoft (MSAL). Estos flujos se pueden usar en varios escenarios de aplicaciones.
Flujo | Descripción |
---|---|
Código de autorización | Las aplicaciones nativas y web obtienen tokens de forma segura en el nombre del usuario. |
Credenciales de cliente | Las aplicaciones de servicio se ejecutan sin interacción del usuario. |
En nombre de | La aplicación llama a una API web o de servicio, que a su vez llama a Microsoft Graph. |
Implícita | Se usa en aplicaciones basadas en explorador. |
Código del dispositivo | Habilita el inicio de sesión en un dispositivo mediante otro dispositivo que tiene un explorador. |
Integrado en Windows | Los equipos Windows adquieren de forma silenciosa un token de acceso cuando están unidos a un dominio. |
Interactive | Las aplicaciones móviles y de escritorio llaman a Microsoft Graph nombre de un usuario. |
Nombre de usuario y contraseña | La aplicación inicia la sesión de un usuario con su nombre de usuario y contraseña. |
Aplicaciones cliente públicas y confidenciales
Varios tipos de aplicaciones pueden adquirir tokens de seguridad. Estas aplicaciones tienden a estar separadas en las dos categorías siguientes. Cada se usa con diferentes bibliotecas y objetos.
Aplicaciones cliente públicas: aplicaciones que se ejecutan en dispositivos o equipos de escritorio o en un explorador web. No son de confianza para mantener de manera segura secretos de aplicación, por lo que solo tienen acceso a API web en nombre del usuario (solo admiten flujos de cliente públicos). Los clientes públicos no pueden contener secretos de tiempo de configuración, por lo que no tienen secretos de cliente.
Aplicaciones cliente confidenciales: aplicaciones que se ejecutan en servidores (aplicaciones web, aplicaciones de API web o incluso aplicaciones de servicio o demonio). Se consideran de acceso difícil y, por ese motivo, pueden mantener un secreto de aplicación. Los clientes confidenciales pueden contener secretos de tiempo de configuración. Cada instancia del cliente tiene una configuración distinta (incluidos el Id. y el secreto de cliente).