Aquisição de tokens

Conforme explicado na MSAL para cenários de Java, há muitas maneiras de adquirir um token. Alguns exigem interações do usuário por meio de um navegador da Web. Alguns não exigem interações do usuário.

Em geral, a maneira de adquirir um token é diferente dependendo do tipo de aplicativo – aplicativo cliente público (desktop/móvel) ou de um aplicativo cliente confidencial (Aplicativo Web, API Web, aplicativo daemon como um serviço de Windows).

Pré-requisitos

Antes de adquirir tokens com MSAL4J, certifique-se de instanciar um aplicativo cliente

Métodos de aquisição de token

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

Aplicativos cliente públicos

  • Obter tokens de forma interativa com o navegador do sistema
  • Obtenha tokens usando o código de autorização após o usuário fazer login pela URL de solicitação de autorização.
  • Também é possível obter um token com um nome de usuário e senha. (Esse fluxo foi preterido)
  • Para aplicativos executados em máquinas Windows e ingressadas em um domínio ou no Microsoft Entra ID, é possível obter um token de forma silenciosa, usando a Autenticação Integrada do Windows (IWA).
  • Por fim, para aplicativos em execução em dispositivos que não têm um navegador da Web, é possível adquirir um token por meio do fluxo de código do dispositivo, que fornece ao usuário uma URL e um código. O usuário vai para um navegador da Web em outro dispositivo, insere o código e entra e, em seguida, Microsoft Entra ID retorna um token para o dispositivo sem navegador.

Aplicativos cliente confidenciais

  • Adquira o token como o próprio aplicativo usando credenciais de cliente e não para um usuário. Por exemplo, em aplicativos que processam usuários em lotes e não em um usuário específico, como em ferramentas de sincronização.
  • No caso de Aplicativos Web ou APIs Web que chamam outra API Web downstream no nome do usuário, use o fluxo On-Behalf-Of para adquirir um token com base em alguma declaração de usuário (SAML, por exemplo, ou um token JWT).
  • Para aplicativos Web no nome de um usuário, adquira tokens por código de autorização depois de permitir que o usuário entre por meio da URL da solicitação de autorização. Normalmente, esse é o mecanismo usado por um aplicativo que permite que o usuário entre usando o OpenID Connect, mas, em seguida, deseja acessar APIs Web para esse usuário específico.

O MSAL4J armazena tokens em cache

Para aplicativos cliente públicos e confidenciais, a MSAL mantém um cache de tokens, e os aplicativos devem primeiro tentar obter um token do cache antes de recorrer a qualquer outro meio (exceto no caso de credenciais do cliente, que consulta o cache por conta própria). Dê uma olhada no padrão recomendado para aquisição de token.

Para poder usar o cache, o aplicativo precisa personalizar a serialização do cache de token.