Guia de início rápido: entre usuários e chame a API do Microsoft Graph a partir de um aplicativo Web Java

Neste início rápido, você baixa e executa um exemplo de código que demonstra como um aplicativo Web Java pode entrar em usuários e chamar a API do Microsoft Graph. Os usuários de qualquer organização do Microsoft Entra podem entrar no aplicativo.

Consulte Como funciona o exemplo para obter uma ilustração.

Pré-requisitos

Para executar este exemplo, você precisa:

Registar e transferir a aplicação do início rápido

Gorjeta

As etapas neste artigo podem variar ligeiramente com base no portal a partir do qual você começou.

Há duas maneiras de iniciar seu aplicativo de início rápido: expresso (opção 1) e manual (opção 2).

Opção 1: Registre-se e configure automaticamente seu aplicativo e, em seguida, baixe o exemplo de código

  1. Vá para o Centro de administração do Microsoft Entra - Experiência de início rápido de registros de aplicativos como pelo menos um administrador de aplicativos na nuvem.
  2. Introduza um nome para a sua aplicação e, em seguida, selecione Registar.
  3. 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: registar e configurar manualmente a aplicação e o exemplo de código

Passo 1: Registar a aplicação

Para registrar seu aplicativo e adicionar manualmente as informações de registro do aplicativo a ele, siga estas etapas:

  1. Entre no centro de administração do Microsoft Entra como pelo menos um administrador de aplicativos na nuvem.
  2. Se você tiver acesso a vários locatários, use o ícone Configurações no menu superior para alternar para o locatário no qual deseja registrar o aplicativo no menu Diretórios + assinaturas.
  3. Navegue até Registros de aplicativos de identidade>>e selecione Novo registro.
  4. Insira um Nome para sua aplicação, por exemplo , java-webapp. Os usuários do seu aplicativo podem ver esse nome. Você pode alterá-lo mais tarde.
  5. Selecione Registar.
  6. 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.
  7. Em Gerir, selecione Autenticação.
  8. Selecione Adicionar uma plataforma>Web.
  9. Na seção Redirecionar URIs, digite https://localhost:8443/msal4jsample/secure/aad.
  10. Selecione Configurar.
  11. Na seção Web, em Redirecionar URIs, insira https://localhost:8443/msal4jsample/graph/me como um segundo URI de redirecionamento.
  12. Em Gerenciar, selecione Certificados & segredos. Na seção Segredos do cliente, selecione Novo segredo do cliente.
  13. Insira uma descrição de chave (por exemplo, segredo do aplicativo), deixe a expiração padrão e selecione Adicionar.
  14. Observe o valor do segredo do cliente. Precisará dele mais tarde.

Etapa 2: Baixe o exemplo de código

Baixe o exemplo de código

Etapa 3: Configurar o exemplo de código

  1. Extraia o arquivo zip para uma pasta local.

  2. Opcional. Se você usar um ambiente de desenvolvimento integrado, abra o exemplo nesse ambiente.

  3. Abra o arquivo application.properties . Você pode encontrá-lo na pasta src/main/resources/ . Substitua os valores nos campos aad.clientId, e pelos valores ID do aplicativo, ID do locatário e aad.secretKey segredo do cliente, aad.authorityrespectivamente. Veja como deve ser:

     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 é o ID do aplicativo que você registrou.
  • Enter_the_Client_Secret_Hereé o Segredo do Cliente que você criou em Certificados & segredos para o aplicativo que você registrou.
  • Enter_the_Tenant_Info_Here é o valor da ID do diretório (locatário) do aplicativo que você registrou.
  1. Para usar HTTPS com localhost, forneça as server.ssl.key propriedades. Para gerar um certificado autoassinado, use o utilitário keytool (incluído no JRE).

Eis 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
  1. Coloque o arquivo keystore gerado na pasta de 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 incorporado.
  • Empacote-o em um arquivo WAR usando o Maven e, em seguida, implante-o em uma solução de contêiner J2EE como o Apache Tomcat.
Executando o projeto a partir de um IDE

Para executar o aplicativo Web a partir de um IDE, selecione executar e vá para a página inicial do projeto. Para este exemplo, o URL padrão da página inicial é https://localhost:8443.

  1. Na página inicial, selecione o botão Login para redirecionar os usuários para o Microsoft Entra ID e solicitar credenciais.

  2. Depois que os usuários são autenticados, eles são redirecionados para https://localhost:8443/msal4jsample/secure/aad. Agora eles estão conectados e a página mostrará informações sobre a conta de usuário. A interface do usuário de exemplo tem estes botões:

    • Sair: desconecta o usuário atual do aplicativo e redireciona esse usuário para a página inicial.
    • 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.
Executando o projeto a partir do Tomcat

Se você quiser implantar o exemplo da Web no Tomcat, faça algumas alterações no código-fonte.

  1. 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);
        }
       }
      
  2. 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.

    • Procure a <connector> tag 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"/>
      
  3. Abra uma janela da Linha de Comandos. Vá para a pasta raiz deste exemplo (onde o arquivo está localizado) e execute mvn package para criar o pom.xml projeto.

    • Este comando irá gerar um msal-web-sample-0.1.0.war ficheiro no seu /targets diretório.
    • Renomeie este arquivo para msal4jsample.war.
    • Implante o arquivo WAR usando o Tomcat ou qualquer outra solução de contêiner J2EE.
      • Para implantar o arquivo, copie-o para o diretório na instalação do Tomcat e inicie o msal4jsample.war/webapps/ servidor Tomcat.
  4. 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 aos arquivos de projeto, por motivos de segurança, recomendamos que você use um certificado em vez de um segredo do cliente antes de usar o aplicativo em um ambiente de produção. Para obter mais informações sobre como usar um certificado, consulte Credenciais de certificado para autenticação de aplicativos.

Mais informações

Como funciona a amostra

Diagram that shows how the sample app generated by this quickstart works.

Obtenha o MSAL

MSAL for Java (MSAL4J) é a biblioteca Java usada para entrar usuários e solicitar tokens que são usados para acessar uma API protegida pela plataforma de identidade da Microsoft.

Adicione MSAL4J ao seu aplicativo usando Maven ou Gradle para gerenciar suas dependências fazendo as seguintes alterações no arquivo pom.xml (Maven) ou build.gradle (Gradle) do aplicativo.

Em pom.xml:

<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>msal4j</artifactId>
    <version>1.0.0</version>
</dependency>

Em build.gradle:

compile group: 'com.microsoft.azure', name: 'msal4j', version: '1.0.0'

Inicializar MSAL

Adicione uma referência ao MSAL para Java adicionando o seguinte código no início do arquivo onde você usará o MSAL4J:

import com.microsoft.aad.msal4j.*;

Ajuda e suporte

Se precisar de ajuda, quiser comunicar um problema ou quiser saber mais sobre as suas opções de suporte, consulte Ajuda e suporte para programadores.

Próximos passos

Para obter uma discussão mais aprofundada sobre a criação de aplicativos Web que entram usuários na plataforma de identidade da Microsoft, consulte a série de cenários com várias partes: