Iniciar sessão de utilizadores com a Biblioteca de Autenticação da Microsoft

Concluído

Você registrou seu aplicativo Web com o Microsoft Entra ID. Agora você está pronto para adicionar o código de autenticação para entrar usuários em seu aplicativo e gostaria de usar um SDK que possa lidar com os detalhes de autenticação para você. Nesta unidade, você aprenderá sobre a Biblioteca de Autenticação da Microsoft para Java (MSAL4J) e como ela ajuda na autenticação.

Biblioteca de Autenticação da Microsoft para Java

A Biblioteca de Autenticação da Microsoft para Java (MSAL4J) permite que os aplicativos entrem em usuários ou aplicativos com identidades Microsoft (ID do Microsoft Entra, contas da Microsoft e contas B2C do Azure Ative Directory) e obtenham tokens para chamar APIs da Microsoft ou suas próprias APIs registradas com a ID do Microsoft Entra. Ele foi construído usando os protocolos OAuth2 e OpenID Connect padrão da indústria.

A biblioteca fornece APIs convenientes que permitem a autenticação com o Microsoft Entra ID para diferentes tipos de aplicativos:

  • Aplicações Web
  • Serviços Daemon
  • Aplicativos de linha de comando
  • Aplicações de computador

Inicializar o objeto MSAL

Para começar a usar o MSAL, você precisa inicializar e configurar o objeto MSAL no código do aplicativo.

A MSAL representa aplicações cliente como clientes públicos e clientes confidenciais, distinguindo-se pela sua capacidade de autenticação segura com o servidor de autorização e manter a confidencialidade das suas credenciais de cliente.

Aplicativos cliente confidenciais são aplicativos que são executados em servidores (aplicativos Web, aplicativos de API da Web ou até mesmo aplicativos de serviço/daemon). Clientes confidenciais podem manter segredos de aplicativos em tempo de configuração.

Você pode criar uma instância do cliente confidencial da seguinte maneira:

IClientCredential credential = ClientCredentialFactory.createFromSecret(CLIENT_SECRET);
ConfidentialClientApplication app = ConfidentialClientApplication
                                        .builder(CLIENT_ID, credential)
                                        .authority(AUTHORITY)
                                        .build();
  • CLIENT_ID: A ID do cliente é a ID exclusiva do aplicativo (cliente) atribuída ao seu aplicativo pela ID do Microsoft Entra quando o aplicativo foi registrado.
  • CLIENT_SECRET: O segredo do cliente para o aplicativo cliente confidencial, criado ao registrar o aplicativo.
  • AUTHORITY: A autoridade é uma URL que indica um diretório do qual a MSAL pode solicitar tokens. Ele é composto pela instância do provedor de identidade e pelo público de entrada do aplicativo.

Adquira tokens de autenticação com o MSAL

MSAL fornece acquireToken métodos para iniciar o fluxo de autenticação e retornar um AuthenticationResult contendo os tokens de autenticação.

Quando um usuário conclui o login, um token de ID é retornado no resultado da autenticação contendo algumas declarações básicas de autenticação, como nome de princípio do usuário, email e assim por diante.

Aqui está um exemplo de aquisição de tokens com MSAL:

final AuthorizationCodeParameters authParams = AuthorizationCodeParameters
                                                    .builder(authCode, new URI(Config.REDIRECT_URI)).scopes(Collections.singleton(Config.SCOPES))
                                                    .build();

final IAuthenticationResult result = app.acquireToken(authParams).get();
  • REDIRECT_URI: O URI de redirecionamento é o URI para o qual o provedor de identidade envia os tokens de segurança de volta. Ele deve corresponder ao URI de redirecionamento no registro do aplicativo Microsoft Entra.
  • ESCOPOS: Escopos são permissões solicitadas pelo aplicativo. Normalmente, os três escopos são suficientes para receber uma resposta de token de openid profile offline_access ID para um login de usuário e são definidos por padrão pela MSAL.

Use os acquireToken métodos em seu aplicativo ao iniciar um fluxo de entrada para usuários e chamar APIs para acessar dados.