Compartilhar via


Adicionar login com a conta do Microsoft Entra a um aplicativo Spring para web

Este artigo mostra como desenvolver um aplicativo Web Spring que ofereça suporte à entrada pela conta Microsoft Entra. Depois de concluir todas as etapas neste artigo, o aplicativo Web será redirecionado 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 tela da caixa de diálogo 'Entrar' do aplicativo.

Pré-requisitos

Os seguintes pré-requisitos são necessários para concluir as etapas neste artigo:

  • Um JDK (Java Development Kit) com suporte. Para obter mais informações sobre os JDKs disponíveis para uso ao desenvolver no Azure, consulte 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 neste artigo.

Criar um aplicativo usando o Spring Initializr

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

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

  3. Adicione as Dependências para Spring Web, ID do Microsoft Entra e OAuth2 Client.

  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 a instância do Microsoft Entra

Criar a instância do Active Directory

Se você for o administrador de uma instância existente, poderá ignorar esse processo.

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

  2. Selecione Todos os serviços, depois Identidade e então ID do Microsoft Entra.

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

    Quando terminar, selecione Criar. Levará alguns minutos para criar o novo recurso.

  4. Quando concluir, 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 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 & segredos no painel de navegação esquerdo. Em seguida, selecione Novo segredo do cliente.

    Captura da tela

  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 mais adiante neste tutorial. (Você não poderá recuperar esse valor mais tarde.)

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

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

  8. Para um novo URI de Redirecionamento, insira http://localhost:8080/login/oauth2/code/ e selecione Configurar.

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

Adicione uma conta de usuário ao diretório e adicione essa conta a um appRole

  1. Na página Visão Geral do Active Directory, selecione Usuáriose selecione 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'.

    Nota

    Você precisa especificar a URL do diretório que foi mencionada anteriormente neste tutorial ao inserir o nome de usuário. Por exemplo:

    test-user@azuresampledirectory.onmicrosoft.com

  3. Na página principal do registro do aplicativo, selecione Funções de aplicativoe, em seguida, selecione Criar 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 de aplicativo' do aplicativo com o painel 'Criar função de aplicativo' em exibição.

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

  5. Selecione Todos os aplicativose, em seguida, selecione o aplicativo ao qual você adicionou a função de aplicativo em uma etapa anterior.

  6. Selecione Usuários e grupose selecione Adicionar usuário/grupo.

  7. Em Usuários, selecione Nenhum Selecionado. Selecione o usuário criado anteriormente, selecione Selecionare selecione Atribuir. Se você criou mais de uma função de aplicativo anteriormente, selecione uma função.

  8. Volte ao painel Usuários, selecione o usuário de teste, escolha Redefinir senha e copie a senha. Você usará a senha ao fazer logon em seu aplicativo mais adiante neste tutorial.

Configurar e compilar seu aplicativo

  1. Extraia os arquivos do arquivo do projeto que você criou e baixou anteriormente neste tutorial para um diretório.

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

  3. Especifique as configurações para o 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>
    

    Onde:

    Parâmetro Descrição
    spring.cloud.azure.active-directory.enabled Habilitar 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 Java para seu aplicativo. Por exemplo: src/main/java/com/wingtiptoys/security/controller.

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

  7. Insira o seguinte código e 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";
         }
    }
    

Compilar e testar seu aplicativo

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

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

    mvn clean package
    mvn spring-boot:run
    
  3. Depois que o aplicativo for criado e iniciado pelo Maven, abra http://localhost:8080/Admin em um navegador da Web. Você deve receber uma solicitação de nome de usuário e senha.

    Captura de tela da caixa de diálogo 'Entrar' do aplicativo.

    Nota

    Você poderá ser solicitado a alterar sua senha se esse for o primeiro logon de uma nova conta de usuário.

    Captura de tela da caixa de diálogo

  4. Depois de fazer logon com êxito, você deverá ver o texto de exemplo "Mensagem de administrador" do controlador.

    Captura de tela da mensagem de administrador do aplicativo.

Resumo

Neste tutorial, você criou um novo aplicativo Web Java usando o starter do Microsoft Entra, configurou um novo tenant do Microsoft Entra, registrou um novo aplicativo no tenant, e então configurou seu aplicativo para usar as anotações e classes do Spring para proteger o app web.

Consulte também

Próximas etapas

Para saber mais sobre o Spring e o Azure, prossiga para o centro de documentação do Spring on Azure.