Adquisición de tokens

Como se explica en MSAL para escenarios de Java, hay muchas maneras de adquirir un token. Algunos requieren interacciones del usuario a través de un explorador web. Algunos no requieren ninguna interacción del usuario.

En general, la manera de adquirir un token es diferente en función del tipo de aplicación: aplicación cliente pública (escritorio o móvil) o una aplicación cliente confidencial (Aplicación web, API web, aplicación de demonio como un servicio de Windows).

Requisitos previos

Antes de adquirir tokens con MSAL4J, asegúrese de crear una instancia de una aplicación cliente.

Métodos de adquisición de tokens

Siga los temas siguientes para obtener una explicación detallada con el uso de código MSAL4J para cada método de adquisición de tokens.

Aplicaciones cliente públicas

  • Adquisición de tokens de forma interactiva con el explorador del sistema
  • Adquiera tokens por código de autorización después de permitir que el usuario inicie sesión a través de la dirección URL de solicitud de autorización.
  • También es posible obtener un token con un nombre de usuario y una contraseña. (Este flujo ha quedado en desuso)
  • En el caso de las aplicaciones que se ejecutan en máquinas Windows y unidas a un dominio o a Microsoft Entra ID, es posible adquirir un token de forma silenciosa, aprovechando la autenticación integrada de Windows (IWA).
  • Por último, para las aplicaciones que se ejecutan en dispositivos que no tienen un explorador web, es posible adquirir un token a través del flujo de código del dispositivo, que proporciona al usuario una dirección URL y un código. El usuario va a un explorador web en otro dispositivo, escribe el código y inicia sesión y, a continuación, Microsoft Entra ID devuelve un token al dispositivo sin explorador.

Aplicaciones cliente confidenciales

  • Adquiera el token como la propia aplicación mediante credenciales de cliente y no para un usuario. Por ejemplo, en aplicaciones que procesan usuarios en lotes y no en un usuario determinado, como en herramientas de sincronización.
  • En el caso de aplicaciones web o API web que llamen a otra API web posterior en nombre del usuario, utilice el flujo «On Behalf Of» para adquirir un token basado en alguna aserción de usuario (por ejemplo, SAML o un token JWT).
  • Para las aplicaciones web en el nombre de un usuario, adquiera tokens por código de autorización después de permitir que el usuario inicie sesión a través de la dirección URL de solicitud de autorización. Normalmente, este es el mecanismo usado por una aplicación que permite al usuario iniciar sesión con OpenID Connect, pero después quiere acceder a las API web para este usuario en particular.

MSAL4J almacena en caché los tokens

En el caso de las aplicaciones cliente públicas y de cliente confidencial, MSAL mantiene una caché de tokens y las aplicaciones deben intentar obtener un token de la memoria caché primero antes de cualquier otro medio (excepto en el caso de las credenciales de cliente, que examinan la memoria caché por sí misma). Eche un vistazo al patrón recomendado para la adquisición de tokens.

Para poder usar la memoria caché, la aplicación debe personalizar la serialización de caché de tokens.