Compartilhar via


Adicionar logon com uma conta do Microsoft Entra a um aplicativo Web Spring Boot

Este artigo mostra como desenvolver um aplicativo Web Spring que ofereça suporte à entrada pela conta do Microsoft Entra. Depois de concluir todas as etapas deste artigo, o aplicativo Web redirecionará para a página de entrada do Microsoft Entra quando for acessado anonimamente. A captura de tela a seguir mostra a página de entrada do Microsoft Entra:

Captura de ecrã da caixa de diálogo 'Iniciar sessão' da aplicação.

Pré-requisitos

Os seguintes pré-requisitos são obrigatórios para concluir as etapas deste artigo:

  • Um JDK (Java Development Kit) com suporte. Para obter mais informações sobre os JDKs disponíveis para uso durante o desenvolvimento no Azure, confira Suporte a Java no Azure e no Azure Stack.
  • Apache Maven, versão 3.0 ou superior.
  • Uma assinatura do Azure. Se você não tiver uma assinatura do Azure, crie uma conta gratuita.

Importante

O Spring Boot versão 2.5 ou superior é necessário para concluir as etapas deste artigo.

Criar um aplicativo usando o Spring Initialzr

  1. Navegue até https://start.spring.io/.

  2. Especifique que você deseja gerar um projeto Maven com Java e insira os nomes de Grupo e Artefato para o seu aplicativo.

  3. Adicione dependências para o Spring Web, Microsoft Entra ID e cliente OAuth2.

  4. Na parte inferior da página, selecione o botão GERAR.

  5. Quando solicitado, baixe o projeto para um caminho no computador local.

Criar instância do Microsoft Entra

Criar a instância do Active Directory

Os administradores de instâncias existentes podem ignorar esse processo.

  1. Faça logon em https://portal.azure.com.

  2. Selecione Todos os serviços, Identidade e ID do Microsoft Entra.

  3. Insira o Nome da organização e seu Nome de domínio inicial. Copie a URL completa do seu diretório. Você usará a URL para adicionar contas de usuário posteriormente neste tutorial. (Por exemplo, azuresampledirectory.onmicrosoft.com.)

    Copie a URL completa do seu diretório. Você usará a URL para adicionar contas de usuário posteriormente neste tutorial. (Por exemplo, azuresampledirectory.onmicrosoft.com.).

    Ao terminar, selecione Criar. Levará poucos minutos para criar o recurso.

  4. Quando terminar, selecione o link exibido para acessar o novo diretório.

  5. Copie a ID do Locatário. Você usará o valor da ID para configurar o arquivo application.properties posteriormente neste tutorial.

Adicionar um registro de aplicativo para seu aplicativo do Spring Boot

  1. No menu do portal, selecione Registros de aplicativo e escolha Registrar um aplicativo.

  2. Especifique seu aplicativo e selecione Registrar.

  3. Quando a página do registro de aplicativo for exibida, copie a ID do aplicativo (cliente) e a ID do diretório (locatário). Você usará esses valores para configurar seu arquivo application.properties posteriormente neste tutorial.

  4. Selecione Certificados e segredos no painel de navegação esquerdo. Depois, selecione Novo segredo do cliente.

    Captura de tela da tela 'Certificados e segredos' do aplicativo com 'Novo segredo do cliente' realçado.

  5. Adicione uma Descrição e selecione a duração na lista Expira. Selecione Adicionar. O valor da chave será preenchido automaticamente.

  6. Copie e salve o valor do segredo do cliente para configurar seu arquivo application.properties posteriormente neste tutorial. (Você não conseguirá recuperar esse valor posteriormente.)

    Captura de tela do aplicativo com o novo segredo do cliente realçado.

  7. Na página principal do registro de aplicativo, selecione Autenticação e escolha Adicionar uma plataforma. Depois, selecione Aplicativos Web.

  8. Insira http://localhost:8080/login/oauth2/code/ como um novo URI de Redirecionamento e escolha Configurar.

  9. Se você modificou o arquivo pom.xml para usar uma versão inicial do Microsoft Entra anterior à 3.0.0: em Concessão implícita e fluxos híbridos, selecione Tokens de ID (usados para fluxos implícitos e híbridos) e selecione Salvar.

Adicionar uma conta de usuário ao diretório e, em seguida, a um AppRole

  1. Na página Visão geral do Active Directory, selecione Usuários e escolha Novo usuário.

  2. Quando o painel Usuário for exibido, insira o Nome de usuário e o Nome. Em seguida, selecione Criar.

    Captura de tela da caixa de diálogo 'Novo usuário'.

    Observação

    Você precisa especificar a URL do diretório mostrada anteriormente neste tutorial quando inserir o nome de usuário. Por exemplo:

    test-user@azuresampledirectory.onmicrosoft.com

  3. Na página inicial do registro de aplicativo, selecione Funções de aplicativo e escolha Criar uma função de aplicativo. Forneça valores para os campos de formulário, selecione Deseja habilitar esta função de aplicativo? e, em seguida, clique em Aplicar.

    Captura de tela da tela 'Funções do aplicativo' com o painel 'Criar função do aplicativo' mostrando.

  4. Na página Visão geral do diretório Microsoft Entra, selecione Aplicativos corporativos.

  5. Selecione Todos os aplicativos e, em seguida, escolha o aplicativo para o qual você adicionou a função de aplicativo em uma etapa anterior.

  6. Selecione Usuários e grupos e, em seguida, Adicionar usuário/grupo.

  7. Em Usuários, selecione Nenhum Selecionado. Escolha o usuário que você criou anteriormente, clique em Selecionar e, em seguida, em Atribuir. Selecione uma função de aplicativo, mesmo se você tiver criado mais de uma anteriormente.

  8. Volte ao painel Usuários, selecione o usuário de teste, escolha Redefinir senha e copie a senha. Você usará a senha quando fizer logon no aplicativo posteriormente neste tutorial.

Configurar e compilar seu aplicativo

  1. Extraia os arquivos do arquivo de projeto criado e baixado antes neste tutorial para um diretório.

  2. Navegue até a pasta src/main/resources no seu projeto e abra o arquivo application.properties em um editor de texto.

  3. Especifique as configurações de registro do aplicativo usando os valores criados anteriormente. Por exemplo:

    # Enable related features.
    spring.cloud.azure.active-directory.enabled=true
    # Specifies your Active Directory ID:
    spring.cloud.azure.active-directory.profile.tenant-id=<tenant-ID>
    # Specifies your App Registration's Application ID:
    spring.cloud.azure.active-directory.credential.client-id=<client-ID>
    # Specifies your App Registration's secret key:
    spring.cloud.azure.active-directory.credential.client-secret=<client-secret>
    

    Em que:

    Parâmetro Descrição
    spring.cloud.azure.active-directory.enabled Habilite os recursos fornecidos pelo spring-cloud-azure-starter-active-directory
    spring.cloud.azure.active-directory.profile.tenant-id Contém a ID de Diretório anterior do seu Active Directory.
    spring.cloud.azure.active-directory.credential.client-id Contém a ID de Aplicativo do registro de aplicativo que você preencheu anteriormente.
    spring.cloud.azure.active-directory.credential.client-secret Contém o Valor da chave do registro de aplicativo que você preencheu anteriormente.
  4. Salve e feche o arquivo application.properties.

  5. Crie uma pasta chamada controlador na pasta de origem do Java para seu aplicativo. Por exemplo: src/main/java/com/wingtiptoys/security/controller.

  6. Crie um arquivo Java chamado HelloController.java na pasta controller e abra-o em um editor de texto.

  7. Insira o código a seguir, depois salve e feche o arquivo:

    package com.wingtiptoys.security;
    
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.security.access.prepost.PreAuthorize;
    
    @RestController
    public class HelloController {
         @GetMapping("Admin")
         @ResponseBody
         @PreAuthorize("hasAuthority('APPROLE_Admin')")
         public String Admin() {
             return "Admin message";
         }
    }
    

Crie e testar seu aplicativo

  1. Abra um prompt de comando e altere o diretório para a pasta em que seu arquivo pom.xml do aplicativo está localizado.

  2. Compile o aplicativo Spring Boot com Maven e execute-o. Por exemplo:

    mvn clean package
    mvn spring-boot:run
    
  3. Depois que o seu aplicativo for criado e iniciado pelo Maven, abra http://localhost:8080/Admin em um navegador da Web. Será solicitado que você forneça um nome de usuário e uma senha.

    Captura de ecrã da caixa de diálogo 'Iniciar sessão' da aplicação.

    Observação

    Você pode ser solicitado a alterar sua senha se for a primeira conexão para uma nova conta de usuário.

    Captura de tela da caixa de diálogo 'Atualize sua senha' do aplicativo.

  4. Depois de entrar, você deve ver o texto de amostra da "mensagem do administrador" no controlador.

    Captura de tela da mensagem de administrador do aplicativo.

Resumo

Neste tutorial, você criou um novo aplicativo Web Java usando o iniciador do Microsoft Entra, configurou um novo locatário do Microsoft Entra, registrou um novo aplicativo no locatário e, em seguida, configurou seu aplicativo para usar as anotações e classes do Spring para proteger o aplicativo Web.

Confira também

Próximas etapas

Para saber mais sobre o Spring e o Azure, continue no Spring no Centro de Documentação do Azure.