Início Rápido: Conecte usuários e chame a API do Microsoft Graph de um aplicativo web Java
Neste guia de início rápido, você baixará e executará um exemplo de código que demonstra como um aplicativo Web Java pode conectar usuários e chamar a API do Microsoft Graph. Usuários de qualquer organização Microsoft Entra podem entrar no aplicativo.
Confira Como o exemplo funciona para ver uma ilustração.
Pré-requisitos
Para executar este exemplo, você precisa de:
- Java Development Kit (JDK) 8 ou posterior.
- Maven.
Registrar e baixar o aplicativo de início rápido
Dica
As etapas neste artigo podem variar ligeiramente com base no portal do qual você começa.
Há duas maneiras de iniciar o aplicativo de início rápido: expresso (opção 1) ou manual (opção 2).
Opção 1: registrar e configurar automaticamente seu aplicativo e, depois, baixar o exemplo de código
- Acesse o Centro de Administração do Microsoft Entra - Registros de aplicativos experiência de início rápido como, no mínimo, um Administrador de Aplicativos de Nuvem.
- Insira um nome para o aplicativo e selecione Registrar.
- Siga as instruções na experiência de início rápido do portal para baixar o código do aplicativo configurado automaticamente.
Opção 2: Registrar e configurar manualmente o aplicativo e o exemplo de código
Etapa 1: Registre seu aplicativo
Para registrar seu aplicativo e adicionar manualmente as informações de registro do aplicativo a ele, execute estas etapas:
- Entre no Centro de administração do Microsoft Entra como pelo menos Administrador de Aplicativo de nuvem.
- Se você tiver acesso a vários locatários, use o ícone de Configurações no menu superior para alternar para o locatário no qual deseja registrar o aplicativo no menu Diretórios + assinaturas.
- Navegue até Identidade>Aplicativos>Registros de aplicativos e selecione Novo registro.
- Insira um Nome para seu aplicativo, por exemplo, java-webapp. Os usuários do seu aplicativo podem ver esse nome. Você pode alterá-lo posteriormente.
- Selecione Registrar.
- Na página Visão geral, anote a ID do Aplicativo (cliente) e a ID do Diretório (locatário) . Você precisará desses valores mais tarde.
- Em Gerenciar, selecione Autenticação.
- Selecione Adicionar uma plataforma>Web.
- Na seção URIs de Redirecionamento, insira
https://localhost:8443/msal4jsample/secure/aad
. - Selecione Configurar.
- Na seção Web, em URIs de redirecionamento, digite
https://localhost:8443/msal4jsample/graph/me
como um segundo URI de redirecionamento. - Em Gerenciar, selecione Certificados e segredos. Na seção Segredos do Cliente, escolha Novo Segredo do Cliente.
- Insira uma descrição de chave (por exemplo, segredo do aplicativo); deixe o término padrão e selecione Adicionar.
- Observe o Valor do segredo do cliente. Você precisará dela mais tarde.
Etapa 2: Baixar o exemplo de código
Etapa 3: Configurar o exemplo de código
Extraia o arquivo zip para uma pasta local.
Opcional. Se você usar um ambiente de desenvolvimento integrado, abra o exemplo nesse ambiente.
Abra o arquivo application.properties. Você pode encontrá-lo na pasta src/main/resources/ . Substitua os valores nos campos
aad.clientId
,aad.authority
eaad.secretKey
pela ID do aplicativo, ID do locatário e valores de segredo do cliente, respectivamente. Veja como deve ficar:aad.clientId=Enter_the_Application_Id_here aad.authority=https://login.microsoftonline.com/Enter_the_Tenant_Info_Here/ aad.secretKey=Enter_the_Client_Secret_Here aad.redirectUriSignin=https://localhost:8443/msal4jsample/secure/aad aad.redirectUriGraph=https://localhost:8443/msal4jsample/graph/me aad.msGraphEndpointHost="https://graph.microsoft.com/"
No código anterior:
Enter_the_Application_Id_here
é a ID do aplicativo que você registrou.Enter_the_Client_Secret_Here
é o Segredo do Cliente criado em Certificados e segredos para o aplicativo registrado.Enter_the_Tenant_Info_Here
é o valor da ID do Diretório (locatário) do aplicativo que você registrou.
- Para usar HTTPS com localhost, forneça as propriedades de
server.ssl.key
. Para gerar um certificado autoassinado, use o utilitário keytool (incluído no JRE).
Veja um exemplo:
keytool -genkeypair -alias testCert -keyalg RSA -storetype PKCS12 -keystore keystore.p12 -storepass password
server.ssl.key-store-type=PKCS12
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password=password
server.ssl.key-alias=testCert
- Coloque o arquivo de repositório de chaves gerado na pasta recursos.
Etapa 4: Executar o exemplo de código
Para executar o projeto, execute uma destas etapas:
- Execute-o diretamente do seu IDE usando o servidor Spring Boot inserido.
- Empacote-o em um arquivo WAR usando Maven e implante-o em uma solução de contêiner J2EE como Apache Tomcat.
Como executar o projeto de um IDE
Para executar o aplicativo Web de um IDE, selecione executar e vá para a home page do projeto. Nesta amostra, a URL da home page padrão é https://localhost:8443.
Na página frontal, selecione o botão Logon para redirecionar os usuários para a ID do Microsoft Entra e solicitar que forneçam as credenciais.
Depois que os usuários são autenticados, eles são redirecionados para
https://localhost:8443/msal4jsample/secure/aad
. Agora ele está conectado e a página mostrará informações sobre a conta do usuário. A interface do usuário de exemplo tem estes botões:- Sair: desconecta o usuário atual do aplicativo e o redireciona para a home page.
- Mostrar Informações do Usuário: adquire um token para o Microsoft Graph e chama o Microsoft Graph com uma solicitação que contém o token, que retorna informações básicas sobre o usuário conectado.
Como executar o projeto do Tomcat
Caso deseje implantar o exemplo da Web no Tomcat, faça algumas alterações no código-fonte.
Abra ms-identity-java-webapp/src/main/java/com.microsoft.azure.msalwebsample/MsalWebSampleApplication.
Exclua todo o código-fonte e substitua-o por este código:
package com.microsoft.azure.msalwebsample; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; @SpringBootApplication public class MsalWebSampleApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(MsalWebSampleApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(MsalWebSampleApplication.class); } }
A porta HTTP padrão do Tomcat é 8080, mas você precisa de uma conexão HTTPS pela porta 8443. Para definir essa configuração:
Vá para tomcat/conf/server.xml.
Pesquise a marca
<connector>
e substitua o conector existente por este conector:<Connector protocol="org.apache.coyote.http11.Http11NioProtocol" port="8443" maxThreads="200" scheme="https" secure="true" SSLEnabled="true" keystoreFile="C:/Path/To/Keystore/File/keystore.p12" keystorePass="KeystorePassword" clientAuth="false" sslProtocol="TLS"/>
Abra uma janela de Prompt de Comando. Vá para a pasta raiz deste exemplo (em que o arquivo
pom.xml
está localizado) e executemvn package
para compilar o projeto.- Esse comando vai gerar um arquivo
msal-web-sample-0.1.0.war
no diretório/targets
. - Renomeie este arquivo como
msal4jsample.war
. - Implante o arquivo WAR usando o Tomcat ou qualquer outra solução de contêiner J2EE.
- Para implantar o arquivo
msal4jsample.war
, copie-o para o diretório/webapps/
na instalação do Tomcat e inicie o servidor Tomcat.
- Para implantar o arquivo
- Esse comando vai gerar um arquivo
Depois que o arquivo for implantado, vá para
https://localhost:8443/msal4jsample
usando um navegador.
Importante
Este aplicativo de início rápido usa um segredo do cliente para se identificar como um cliente confidencial. Como o segredo do cliente é adicionado como texto sem formatação a seus arquivos de projeto, por motivos de segurança, é recomendável usar um certificado, em vez de um segredo do cliente, antes de usar o aplicativo em um ambiente de produção. Para saber mais sobre como usar um certificado, confira Credenciais de certificado para autenticação de aplicativo.
Mais informações
Como o exemplo funciona
Obter MSAL
MSAL4J (MSAL para Java) é a biblioteca Java usada para conectar usuários e solicitar tokens que são usados para acessar uma API protegida pela plataforma de identidade da Microsoft.
Adicione a MSAL4J ao seu aplicativo usando o Maven ou o Gradle para gerenciar as dependências fazendo as alterações a seguir no arquivo pom.xml (Maven) ou build.gradle (Gradle) do aplicativo.
No pom.xml:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>msal4j</artifactId>
<version>1.0.0</version>
</dependency>
No build.gradle:
compile group: 'com.microsoft.azure', name: 'msal4j', version: '1.0.0'
Inicializar a MSAL
Adicione uma referência à MSAL para Java incluindo o seguinte código no início do arquivo no qual você usará a MSAL4J:
import com.microsoft.aad.msal4j.*;
Ajuda e suporte
Se precisar de ajuda, quiser relatar um problema ou desejar saber mais sobre as opções de suporte, confira Ajuda e suporte para desenvolvedores.
Próximas etapas
Para ver uma discussão mais detalhada sobre a criação de aplicativos Web que conectam usuários na plataforma de identidade da Microsoft, veja a série de cenários com várias partes: