Obter tokens

Como explicado em cenários MSAL para Java, existem muitas formas de adquirir um token. Alguns requerem interações do utilizador através de um navegador web. Alguns não exigem qualquer interação do utilizador.

Em geral, a forma de adquirir um token varia consoante o tipo de aplicação – aplicação cliente pública (desktop/móvel) ou uma aplicação cliente confidencial (Web App, Web API, aplicação daemon como um serviço Windows).

Pre-requisites

Antes de adquirir tokens com MSAL4J, certifique-se de instanciar uma aplicação cliente

Métodos de aquisição de tokens

Siga os tópicos abaixo para uma explicação detalhada sobre o uso do código MSAL4J para cada método de aquisição de tokens.

Aplicações para clientes públicos

Aplicações confidenciais para clientes

  • Adquira o token como a própria aplicação usando as credenciais do cliente, e não para um utilizador. Por exemplo, em aplicações que processam utilizadores em lotes e não um utilizador específico, como nas ferramentas de sincronização.
  • No caso de Aplicações Web ou Web APIs que chamam outra Web API subsequente em nome do utilizador, utilize o fluxo On Behalf Of para obter um token com base numa asserção do utilizador (por exemplo, SAML ou um token JWT).
  • Para aplicações Web em nome de um utilizador, adquira tokens por código de autorização após permitir que o utilizador inicie sessão através do URL do pedido de autorização. Este é tipicamente o mecanismo utilizado por uma aplicação que permite ao utilizador iniciar sessão através do OpenID Connect, mas depois quer aceder às APIs Web para esse utilizador em particular.

O MSAL4J coloca tokens em cache

Para aplicações cliente pública e cliente confidencial, o MSAL mantém uma cache de token, e as aplicações devem tentar obter um token da cache primeiro antes de qualquer outro meio (exceto no caso das credenciais do cliente, que analisam a cache isoladamente). Veja o padrão recomendado para aquisição de tokens.

Para poder utilizar o cache, a aplicação precisa de personalizar a serialização do token cache.