Iniciar sessão de utilizadores com a Biblioteca de Autenticação da Microsoft
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.