Exploración de la biblioteca de autenticación de Microsoft

Completado

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).