Conectar usuários com a Biblioteca de Autenticação da Microsoft
Você registrou seu aplicativo web no Microsoft Entra ID. Você agora está pronto para adicionar o código de autenticação ao login de usuários no seu aplicativo e gostaria de usar um SDK que possa se encarregar dos detalhes da autenticação para você. Nesta unidade, você aprenderá sobre a MSAL4J (Biblioteca de Autenticação da Microsoft para Java) 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 façam o login de usuários ou aplicativos usando identidades da Microsoft (Microsoft Entra ID, contas Microsoft e contas do Azure Active Directory B2C) e obtenham tokens para chamar APIs da Microsoft ou suas próprias APIs registradas no Microsoft Entra ID. Foi compilada usando os protocolos OAuth2 e OpenID Connect que são padrão do setor.
A biblioteca fornece APIs convenientes que habilitam a autenticação com o Microsoft Entra ID para diferentes tipos de aplicativos:
- Aplicativos Web
- Serviços de daemon
- Aplicativos de linha de comando
- Aplicativos da área de trabalho
Inicializar o objeto da MSAL
Para começar a usar a MSAL, você precisa inicializar e configurar o objeto MSAL no código do aplicativo.
A MSAL representa aplicativos cliente como clientes públicos e clientes confidenciais, diferenciados pela capacidade de autenticar de modo seguro no servidor de autorização e manter a confidencialidade das credenciais do cliente.
Aplicativos cliente confidenciais são executados em servidores (aplicativos Web, aplicativos de API Web ou até mesmo aplicativos de serviço/daemon). Clientes confidenciais podem conter segredos de aplicativo 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 do aplicativo (cliente) exclusiva atribuída ao seu aplicativo pelo Microsoft Entra ID quando o aplicativo foi registrado.
- CLIENT_SECRET: o segredo do cliente do 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. É composta da instância do provedor de identidade e do público-alvo do login no aplicativo.
Adquirir tokens de autenticação com a MSAL
A MSAL fornece métodos acquireToken
para iniciar o fluxo de autenticação e retornar um AuthenticationResult
que contém os tokens de autenticação.
Quando um usuário faz o login, um token de ID é retornado no resultado da autenticação contendo algumas declarações de autenticação básicas, como nome UPN, email etc.
Veja um exemplo de como adquirir tokens com a 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 do Microsoft Entra.
- SCOPES: Escopos são as permissões solicitadas pelo aplicativo. Normalmente, os três escopos
openid profile offline_access
são suficientes para receber uma resposta do token de ID para uma conexão de usuário e são definidos por padrão pela MSAL.
Use os métodos acquireToken
no aplicativo quando iniciar um fluxo de login para os usuários e ao chamar APIs para acessar dados.