Habilitar aplicativos Java Tomcat para conectar usuários e acessar o Microsoft Graph
Este artigo apresenta um aplicativo Java Tomcat que conecta usuários e obtém um token de acesso para chamar o Microsoft Graph. Ele usa a MSAL (Biblioteca de Autenticação da Microsoft) para Java.
O diagrama a seguir mostra a topologia do aplicativo:
O aplicativo cliente usa a MSAL para Java (MSAL4J) para conectar um usuário e obter um token de acesso para o Microsoft Graph do Microsoft Entra ID. O token de acesso confirma que o usuário está autorizado a acessar o ponto de extremidade de API do Microsoft Graph, conforme definido no escopo.
Pré-requisitos
- Java 8 ou superior.
- Maven 3
- Um locatário do Microsoft Entra ID. Para obter mais informações, consulte Como obter um locatário do Microsoft Entra ID.
- Uma conta de usuário em seu próprio locatário do Microsoft Entra ID se quiser trabalhar apenas com contas em seu diretório organizacional, ou seja, no modo de locatário único. Se você ainda não tiver criado uma conta de usuário em seu locatário, deverá fazê-lo antes de continuar. Para obter mais informações, consulte Como criar, convidar e excluir usuários.
- Uma conta de usuário no locatário do Microsoft Entra ID de qualquer organização, se quiser trabalhar com contas em qualquer diretório organizacional, ou seja, no modo multilocatário. Este exemplo deve ser modificado para funcionar com uma conta pessoal da Microsoft. Se você ainda não tiver criado uma conta de usuário em seu locatário, deverá fazê-lo antes de continuar. Para obter mais informações, consulte Como criar, convidar e excluir usuários.
- Uma conta pessoal da Microsoft, por exemplo, Xbox, Hotmail, Live e assim por diante, se você quiser trabalhar com contas pessoais da Microsoft.
Recomendações
- Alguma familiaridade com o Java/Jakarta Servlets.
- Alguma familiaridade com o terminal Linux/OSX.
- jwt.ms para inspecionar seus tokens.
- Fiddler para monitorar sua atividade de rede e solução de problemas.
- Siga o Blog do Microsoft Entra ID para se atualizar com os desenvolvimentos mais recentes.
Configurar o exemplo
As seções a seguir mostram como configurar o aplicativo de exemplo.
Clone ou baixe o repositório de exemplo.
Para clonar o exemplo, abra uma janela do Bash e use o seguinte comando:
git clone https://github.com/Azure-Samples/ms-identity-msal-java-samples.git
cd 3-java-servlet-web-app/2-Authorization-I/call-graph
Como alternativa, navegue até o repositório ms-identity-msal-java-samples, baixe-o como um arquivo .zip e extraia-o para o disco rígido.
Importante
Para evitar limitações de comprimento de caminho de arquivo no Windows, clone ou extraia o repositório em um diretório próximo à raiz do disco rígido.
Registrar o aplicativo de exemplo com seu locatário do Microsoft Entra ID
Há um projeto neste exemplo. As seções a seguir mostram como registrar o aplicativo usando o portal do Azure.
Escolha o locatário do Microsoft Entra ID no qual você deseja criar seus aplicativos
Siga as etapas a seguir para escolher o locatário:
Entre no portal do Azure.
Se sua conta estiver presente em mais de um locatário do Microsoft Entra ID, selecione seu perfil no canto do portal do Azure e selecione Mudar diretório para alterar sua sessão para o locatário desejado do Microsoft Entra ID.
Registrar o aplicativo (java-servlet-webapp-call-graph)
Primeiro, registre um novo aplicativo no portal do Azure seguindo as instruções no Início Rápido: Registar um aplicativo com a plataforma de identidade da Microsoft.
Em seguida, siga as etapas a seguir para concluir o registro:
Navegue até a página de registros de aplicativo da plataforma de identidade da Microsoft para desenvolvedores.
Selecione Novo registro.
Na página Registrar um aplicativo que aparece, insira as seguintes informações de registro do aplicativo:
Na seção Nome, insira um nome de aplicativo relevante para exibição aos usuários do aplicativo: por exemplo,
java-servlet-webapp-call-graph
.Em Tipos de conta com suporte, selecione uma das seguintes opções:
- Selecione Contas somente neste diretório organizacional se você estiver criando um aplicativo para ser usado apenas por usuários do seu locatário, ou seja, um aplicativo locatário único.
- Selecione Contas em qualquer diretório organizacional se quiser que os usuários em qualquer locatário do Microsoft Entra ID possam usar seu aplicativo, ou seja, um aplicativo multilocatário .
- Selecione Contas em qualquer diretório organizacional e contas Microsoft pessoais para o mais amplo conjunto de clientes, ou seja, um aplicativo multilocatário que também oferece suporte a contas pessoais da Microsoft.
Selecione Contas Microsoft pessoais para uso somente por usuários de contas Microsoft pessoais, por exemplo, contas do Hotmail, Live, Skype e Xbox.
Na seção URI de redirecionamento, selecione Web na caixa de combinação e insira o seguinte URI de redirecionamento:
http://localhost:8080/msal4j-servlet-graph/auth/redirect
Selecione Registrar para criar o aplicativo.
Na página de registro do aplicativo, localize e copie o valor do ID do aplicativo (cliente) para uso posterior. Use esse valor no(s) arquivo(s) de configuração do aplicativo.
Selecione Salvar para salvar as alterações.
Na página de registo do aplicativo, selecione Segredos de certificados & no painel de navegação para abrir a página em que possa gerar segredos e carregar certificados.
Na seção Segredos do Cliente, escolha Novo Segredo do Cliente.
Insira uma descrição, por exemplo, segredo do aplicativo.
Selecione uma das durações disponíveis: Em 1 ano, Em 2 anos ou Nunca expira.
Selecione Adicionar. O valor gerado é exibido.
Copie e salve o valor gerado para uso nas etapas posteriores. Esse valor é necessário para os arquivos de configuração do código. Esse valor não é exibido novamente e você não pode recuperá-lo por outros meios. Portanto, salve-o no portal do Azure antes de navegar para qualquer outra tela ou painel.
Na página de registro do aplicativo, selecione Permissões de API no painel de navegação para abrir a página para adicionar acesso às APIs de que o aplicativo precisa.
Escolha Adicionar permissões.
Verifique se a guia APIs da Microsoft está selecionada.
Na seção APIs da Microsoft frequentemente utilizadas, selecione Microsoft Graph.
Na seção Permissões delegadas, selecione User.Read da lista. Use a caixa de pesquisa, se necessário.
Selecione Adicionar Permissões.
Configure o aplicativo (java-servlet-webapp-call-graph) para usar o registro do aplicativo
Use as seguintes etapas para configurar o aplicativo:
Observação
Nas etapas a seguir, ClientID
é o mesmo que Application ID
ou AppId
.
Abrir o projeto no seu IDE.
Abra o arquivo ./src/main/resources/authentication.properties.
Encontre a cadeia de caracteres
{enter-your-tenant-id-here}
. Substitua o valor existente por um dos seguintes valores:- Sua ID de locatário do Microsoft Entra ID se você registrou seu aplicativo com a opção Contas somente neste diretório organizacional.
- A palavra
organizations
se você registrou seu aplicativo com a opção Contas em qualquer diretório organizacional. - A palavra
common
se você registrou seu aplicativo com a opção Contas em qualquer diretório organizacional e contas pessoais da Microsoft. - A palavra
consumers
se você registrou seu aplicativo com a opção Contas Microsoft pessoal.
Localize a cadeia de caracteres
{enter-your-client-id-here}
e substitua o valor existente pelo ID do aplicativo ouclientId
do aplicativojava-servlet-webapp-call-graph
copiado do portal do Azure.Localize a cadeia de caracteres
{enter-your-client-secret-here}
e substitua o valor existente pelo valor que você salvou durante a criação do aplicativojava-servlet-webapp-call-graph
, no portal do Azure.
Compilar o exemplo
Para criar o exemplo usando o Maven, navegue até o diretório que contém o arquivo pom.xml do exemplo e execute o seguinte comando:
mvn clean package
Esse comando gera um arquivo .war que pode ser executado em vários servidores de aplicativos.
Execute o exemplo
As seções a seguir mostram como implantar o exemplo no Serviço de Aplicativo do Azure.
Pré-requisitos
Plug-in do Maven para aplicativos do Serviço de Aplicativo do Azure
Se o Maven não for sua ferramenta de desenvolvimento preferida, confira os seguintes tutoriais semelhantes que usam outras ferramentas:
Configurar o plug-in do Maven
Quando você implanta no Serviço de Aplicativo do Azure, a implantação usa automaticamente suas credenciais do Azure a partir da CLI do Azure. Se a CLI do Azure não estiver instalada localmente, o plugin Maven será autenticado com o OAuth ou com as credenciais do dispositivo. Para obter mais informações, confira autenticação com plug-ins do Maven.
Use as etapas a seguir para configurar o plug-in:
Execute o comando a seguir para configurar a implantação. Esse comando ajuda você a configurar o sistema operacional do Serviço de Aplicativo do Azure, a versão Java e a versão do Tomcat.
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.13.0:config
Para Criar uma nova configuração de execução, pressione Y e depois pressione Enter.
Para Definir valor para SO, pressione 1 para Windows ou 2 para Linux e pressione Enter.
Em Definir valor para javaVersion, pressione 2 para Java 11 e depois pressione Enter.
Em Definir valor para webContainer, pressione 4 para Tomcat 9.0 e pressione Enter.
Para Definir valor para pricingTier, pressione Enter para selecionar a camada P1v2 padrão.
Para Confirmar, pressione Y e depois pressione Enter.
O exemplo a seguir mostra a saída do processo de implantação:
Please confirm webapp properties
AppName : msal4j-servlet-auth-1707209552268
ResourceGroup : msal4j-servlet-auth-1707209552268-rg
Region : centralus
PricingTier : P1v2
OS : Linux
Java Version: Java 11
Web server stack: Tomcat 9.0
Deploy to slot : false
Confirm (Y/N) [Y]: [INFO] Saving configuration to pom.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 37.112 s
[INFO] Finished at: 2024-02-06T08:53:02Z
[INFO] ------------------------------------------------------------------------
Após você confirmar suas escolhas, o plug-in adiciona o elemento de plug-in e as configurações necessárias ao arquivo pom.xml do projeto para configurar o aplicativo para ser executado no Serviço de Aplicativo do Azure.
A parte relevante do arquivo pom.xml deve ser semelhante ao exemplo a seguir:
<build>
<plugins>
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>>azure-webapp-maven-plugin</artifactId>
<version>x.xx.x</version>
<configuration>
<schemaVersion>v2</schemaVersion>
<resourceGroup>your-resourcegroup-name</resourceGroup>
<appName>your-app-name</appName>
...
</configuration>
</plugin>
</plugins>
</build>
Você poderá modificar as configurações do Serviço de Aplicativo diretamente em seu pom.xml. Algumas configurações comuns são listadas na tabela a seguir:
Propriedade | Obrigatório | Descrição |
---|---|---|
subscriptionId |
false | A ID da assinatura. |
resourceGroup |
true | O grupo de recursos do Azure para seu aplicativo. |
appName |
true | O nome do seu aplicativo. |
region |
false | A região na qual hospedar seu aplicativo. O valor padrão é centralus . Para regiões válidas, consulte Regiões com suporte. |
pricingTier |
false | O nível de preços do seu aplicativo. O valor padrão é P1v2 para uma carga de trabalho de produção. O valor mínimo recomendado para desenvolvimento e teste Java é B2 . Para saber mais, consulte Preço do Serviço de Aplicativo. |
runtime |
false | A configuração do ambiente de tempo de execução. Para mais informações, confira Informações de configuração. |
deployment |
false | Configuração de implantação. Para mais informações, confira Informações de configuração. |
Para obter a lista completa de configurações, veja a documentação de referência do plug-in. Todos os plug-ins do Azure Maven compartilham um conjunto comum de configurações. Para essas configurações, consulte Configurações comuns. Para conhecer as configurações específicas do Serviço de Aplicativo do Azure, consulte Aplicativo do Azure: Detalhes da configuração.
Salve os valores appName
e resourceGroup
para uso posterior.
Preparar o aplicativo para implantação
Quando você implanta seu aplicativo no Serviço de Aplicativo, o URL de redirecionamento é alterado para o URL de redirecionamento da instância do aplicativo implantado. Use as etapas a seguir para alterar essas configurações em seu arquivo de propriedades:
Navegue até o arquivo authentication.properties do seu aplicativo e altere o valor de
app.homePage
para o nome de domínio do aplicativo implantado, conforme mostrado no exemplo a seguir. Por exemplo, se escolheuexample-domain
o nome do aplicativo na etapa anterior, agora deve usarhttps://example-domain.azurewebsites.net
para oapp.homePage
valor. Altere também o protocolo dehttp
parahttps
.# app.homePage is by default set to dev server address and app context path on the server # for apps deployed to azure, use https://your-sub-domain.azurewebsites.net app.homePage=https://<your-app-name>.azurewebsites.net
Depois de salvar esse arquivo, use o seguinte comando para recompilar o aplicativo:
mvn clean package
Importante
Neste mesmo arquivo authentication.properties, você tem uma configuração para o arquivo aad.secret
. Não é uma prática recomendada implantar esse valor no Serviço de Aplicativo. Também não é uma prática recomendada deixar esse valor no código e possivelmente enviá-lo para o repositório git. Para remover esse valor secreto do seu código, você pode encontrar orientações mais detalhadas na seção Implantar no Serviço de Aplicativo – Remover segredo. Essas diretrizes adicionam etapas extras para enviar o valor secreto por push para Key Vault e usar as Referências do Key Vault.
Atualizar seu registro de aplicativo do Microsoft Entra ID
Como o URI de redirecionamento é alterado para o aplicativo implantado no Serviço de Aplicativo do Azure, você também precisa alterar o URI de redirecionamento no registro do aplicativo Microsoft Entra ID. Use as seguintes etapas para fazer essa alteração:
Navegue até a página de registros de aplicativo da plataforma de identidade da Microsoft para desenvolvedores.
Use a caixa de pesquisa para procurar o registro do aplicativo. Por exemplo,
java-servlet-webapp-authentication
.Abra o registro do aplicativo selecionando seu nome.
Selecione Autenticação no menu.
Na seção Web - URIs de redirecionamento, selecione Adicionar URI.
Preencha o URI do aplicativo, anexando
/auth/redirect
, por exemplo,https://<your-app-name>.azurewebsites.net/auth/redirect
.Selecione Salvar.
Implantar o aplicativo
Agora você está pronto para implantar o aplicativo no Serviço de Aplicativo do Azure. Use o seguinte comando para verificar se você está conectado ao ambiente do Azure para executar a implantação:
az login
Com todas as configurações prontas no arquivo pom.xml, agora você pode usar o seguinte comando para implantar o aplicativo Java no Azure:
mvn package azure-webapp:deploy
Após a conclusão da implementação, seu aplicativo estará pronto em http://<your-app-name>.azurewebsites.net/
. Abra o URL com o seu navegador da Web local, onde deverá ver a página inicial do aplicativo msal4j-servlet-auth
.
Explorar o exemplo
Use as seguintes etapas para explorar o exemplo:
- Observe o status de conectado ou desconectado exibido no centro da tela.
- Selecione o botão contextual no canto. Esse botão lê Entrar quando você executa o aplicativo pela primeira vez.
- Na próxima página, siga as instruções e conecte-se com uma conta no locatário do Microsoft Entra ID.
- Na tela de consentimento, observe os escopos que estão sendo solicitados.
- Observe que o botão contextual agora diz Sair e exibe seu nome de usuário.
- Selecione Detalhes do Token de ID para ver algumas das declarações decodificadas do token de ID.
- Selecione Chamar o Graph para chamar o ponto de extremidade do Microsoft Graph /me endpoint e ver uma seleção dos detalhes do usuário obtidos.
- Use o botão no canto para desconectar.
Observações sobre o código
Este exemplo usa o MSAL para Java (MSAL4J) para conectar um usuário e obter um token para a API do Microsoft Graph. Ele usa o SDK do Microsoft Graph para Java para obter dados do Graph. Você deve adicionar essas bibliotecas aos projetos usando o Maven.
Se você quiser reproduzir o comportamento deste exemplo, poderá copiar o arquivo pom.xml e o conteúdo das pastas helpers e authservlets na pasta src/main/java/com/microsoft/azuresamples/msal4j. Você também precisa do arquivo authentication.properties. Essas classes e arquivos contêm código genérico que pode ser usado em uma grande variedade de aplicativos. Você também pode copiar o restante do exemplo, mas as outras classes e arquivos foram criados especificamente para atender ao objetivo deste exemplo.
Contents
A tabela a seguir mostra o conteúdo da pasta do projeto de exemplo:
Arquivo/pasta | Descrição |
---|---|
src/main/java/com/microsoft/azuresamples/msal4j/callgraphwebapp/ | Esse diretório contém as classes que definem a lógica comercial de back-end do aplicativo. |
src/main/java/com/microsoft/azuresamples/msal4j/authservlets/ | Esse diretório contém as classes usadas para os pontos de extremidade de conexão e desconexão. |
____Servlet.java | Todos os pontos de extremidade disponíveis são definidos em classes .java que terminam em ____Servlet.java. |
src/main/java/com/microsoft/azuresamples/msal4j/helpers/ | Classes auxiliares para autenticação. |
AuthenticationFilter.java | Redireciona solicitações não autenticadas para pontos de extremidade protegidos para uma página 401. |
src/main/resources/authentication.properties | Configuração do Microsoft Entra ID e do programa. |
src/main/webapp/ | Esse diretório contém a IU: modelos JSP |
CHANGELOG.md | Lista de alterações no exemplo. |
CONTRIBUTING.md | Diretrizes para contribuir com o exemplo. |
LICENÇA | A licença para o exemplo. |
ConfidentialClientApplication
Uma ConfidentialClientApplication
instância é criada no arquivo AuthHelper.java , conforme mostrado no exemplo a seguir. Esse objeto ajuda a criar a URL de autorização do Microsoft Entra ID e também ajuda a trocar o token de autenticação por um token de acesso.
// getConfidentialClientInstance method
IClientSecret secret = ClientCredentialFactory.createFromSecret(SECRET);
confClientInstance = ConfidentialClientApplication
.builder(CLIENT_ID, secret)
.authority(AUTHORITY)
.build();
Os seguintes parâmetros são usados para a instanciação:
- A ID do cliente do aplicativo.
- O segredo do cliente, o qual é um requisito para Aplicativos cliente confidenciais.
- A Autoridade do Microsoft Entra ID, que inclui o ID de locatário do Microsoft Entra.
Neste exemplo, esses valores são lidos do arquivo authentication.properties usando um leitor de propriedades no arquivo Config.java .
Orientação passo a passo
As etapas a seguir fornecem um passo a passo da funcionalidade do aplicativo:
A primeira etapa do processo de entrada é enviar uma solicitação para o ponto de extremidade
/authorize
para o locatário do Microsoft Entra ID. A instância da MSAL4JConfidentialClientApplication
é utilizada para construir uma URL de solicitação de autorização. O aplicativo redireciona o navegador para essa URL, que é onde o usuário se conecta.final ConfidentialClientApplication client = getConfidentialClientInstance(); AuthorizationRequestUrlParameters parameters = AuthorizationRequestUrlParameters.builder(Config.REDIRECT_URI, Collections.singleton(Config.SCOPES)) .responseMode(ResponseMode.QUERY).prompt(Prompt.SELECT_ACCOUNT).state(state).nonce(nonce).build(); final String authorizeUrl = client.getAuthorizationRequestUrl(parameters).toString(); contextAdapter.redirectUser(authorizeUrl);
A lista a seguir descreve os recursos desse código:
AuthorizationRequestUrlParameters
: parâmetros que devem ser definidos para compilar umaAuthorizationRequestUrl
.REDIRECT_URI
: onde o Microsoft Entra ID redireciona o navegador, juntamente com o código de autenticação, após coletar as credenciais do usuário. Ele deve corresponder ao URI de redirecionamento no registo do aplicativo Microsoft Entra ID no portal do Azure.SCOPES
: Escopos os escopos são permissões solicitadas pelo aplicativo.- Normalmente, os três escopos
openid profile offline_access
são suficientes para receber uma resposta de token de ID. - A lista completa de escopos solicitados pelo aplicativo pode ser encontrada na seção arquivo authentication.properties. Você pode adicionar mais escopos, como
User.Read
.
- Normalmente, os três escopos
O usuário recebe um prompt de entrada do Microsoft Entra ID. Se a tentativa de entrar for bem-sucedida, o navegador do usuário será redirecionado para o ponto de extremidade de redirecionamento do aplicativo. Uma solicitação válida ao ponto de extremidade conterá um código de autorização.
Em seguida, a
ConfidentialClientApplication
instância troca esse código de autorização por um token de ID e um token de acesso do Microsoft Entra ID.// First, validate the state, then parse any error codes in response, then extract the authCode. Then: // build the auth code params: final AuthorizationCodeParameters authParams = AuthorizationCodeParameters .builder(authCode, new URI(Config.REDIRECT_URI)).scopes(Collections.singleton(Config.SCOPES)).build(); // Get a client instance and leverage it to acquire the token: final ConfidentialClientApplication client = AuthHelper.getConfidentialClientInstance(); final IAuthenticationResult result = client.acquireToken(authParams).get();
A lista a seguir descreve os recursos desse código:
AuthorizationCodeParameters
: parâmetros que devem ser definidos para trocar o código de autorização por uma ID e/ou token de acesso.authCode
: o código de autorização recebido no ponto de extremidade de redirecionamento.REDIRECT_URI
: o URI de redirecionamento usado na etapa anterior deve ser passado novamente.SCOPES
: os escopos usados na etapa anterior devem ser passados novamente.
Se
acquireToken
for bem-sucedido, as declarações de token serão extraídas. Se a verificação nonce for aprovada, os resultados serão colocados emcontext
, uma instância deIdentityContextData
, e salvos na sessão. Em seguida, o aplicativo pode criar uma instânciaIdentityContextData
dele com base na sessão por meio de uma instância deIdentityContextAdapterServlet
sempre que precisar acessá-lo, conforme mostra o código a seguir:// parse IdToken claims from the IAuthenticationResult: // (the next step - validateNonce - requires parsed claims) context.setIdTokenClaims(result.idToken()); // if nonce is invalid, stop immediately! this could be a token replay! // if validation fails, throws exception and cancels auth: validateNonce(context); // set user to authenticated: context.setAuthResult(result, client.tokenCache().serialize());
Proteger as rotas
Para obter informações sobre como o aplicativo de exemplo filtra o acesso a rotas, consulte AuthenticationFilter.java. No arquivo authentication.properties, a app.protect.authenticated
propriedade contém as rotas separadas por vírgulas que somente usuários autenticados podem acessar, conforme mostrado no exemplo a seguir:
# for example, /token_details requires any user to be signed in and does not require special roles or groups claim(s)
app.protect.authenticated=/token_details, /call_graph
Chamar Graph
Quando o usuário navega para /call_graph
, o aplicativo cria uma instância do IGraphServiceClient
, do Java Graph SDK, passando o token de acesso do usuário conectado. Depois desse ponto, o cliente do Graph coloca o token de acesso nos Authorization
cabeçalhos de autorização de suas solicitações. Em seguida, o aplicativo solicita que ao cliente do Graph que chame o ponto de extremidade /me
para suspender detalhes do usuário conectado no momento.
Se você já tiver um token de acesso válido para o Serviço do Graph com o User.Read
escopo, precisará apenas do seguinte código para obter acesso ao /me
ponto de extremidade:
//CallGraphServlet.java
User user = GraphHelper.getGraphClient(contextAdapter).me().buildRequest().get();
Escopos
Escopos informam ao Microsoft Entra ID o nível de acesso que o aplicativo está solicitando.
Com base nos escopos solicitados, o Microsoft Entra ID apresenta uma caixa de diálogo de consentimento para o usuário no momento da entrada. Se o usuário consentir um ou mais escopos e obtiver um token, os escopos consentidos serão codificados no access_token
.
Para os escopos solicitados pelo aplicativo, consulte authentication.properties. Por padrão, o aplicativo define o valor de escopos como User.Read
. Esse escopo específico da API do Microsoft Graph é para acessar as informações do usuário conectado no momento. O ponto de extremidade do grafo para acessar essas informações é https://graph.microsoft.com/v1.0/me
. Todas as solicitações válidas feitas a esse ponto de extremidade devem conter um access_token
que contenha o escopo User.Read
no Authorization
cabeçalho.
Mais informações
- MSAL (Biblioteca de Autenticação da Microsoft) para Java
- Plataforma de identidade da Microsoft (Microsoft Entra ID para desenvolvedores)
- Início rápido: registrar um aplicativo na plataforma de identidade da Microsoft
- Noções básicas sobre as experiências de consentimento do aplicativo Microsoft Entra ID
- Entenda o consentimento do usuário e do administrador
- Exemplos de código do MSAL