Partilhar via


Adicionar início de sessão com a conta Microsoft Entra a uma aplicação Web Spring

Este artigo mostra-lhe como desenvolver uma aplicação Web Spring que suporte o início de sessão pela conta Microsoft Entra. Depois de concluir todas as etapas neste 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 necessários para concluir as etapas neste artigo:

Importante

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

Criar uma aplicação com o Spring Initializr

  1. Navegue para https://start.spring.io/.

  2. Especifique que pretende gerar um projeto Maven com Java, introduza os nomes de Group (Grupo) e Artifact (Artefacto) para a sua aplicação.

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

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

  5. Quando lhe for pedido, transfira o projeto para um caminho no seu computador local.

Criar instância do Microsoft Entra

Criar uma instância do Active Directory

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

  1. Inicie sessão em https://portal.azure.com.

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

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

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

    Quando terminar, selecione Criar. A criação do novo recurso poderá demorar alguns minutos.

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

  5. Copie o ID do locatário. Você usará o valor ID para configurar seu arquivo application.properties mais adiante neste tutorial.

Adicionar um registo de aplicação para a sua aplicação do Spring Boot

  1. No menu do portal, selecione Registos de aplicações e, em seguida, selecione Registar uma aplicação.

  2. Especifique seu aplicativo e selecione Registrar.

  3. Quando a página de registro do 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 mais adiante neste tutorial.

  4. Selecione Certificados & segredos no painel de navegação esquerdo. Em seguida, selecione Novo segredo do cliente.

    Captura de ecrã do ecrã da aplicação 'Certificados & segredos' com 'Novo segredo do cliente' realçado.

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

  6. Copie e guarde o valor do segredo do cliente para configurar o ficheiro application.properties mais adiante neste tutorial. (Você não poderá recuperar esse valor mais tarde.)

    Captura de ecrã da aplicação com o novo segredo do cliente realçado.

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

  8. Insira http://localhost:8080/login/oauth2/code/ como um novo URI de redirecionamento e selecione 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.

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

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

  2. Quando for apresentado o painel Utilizador, introduza o Nome de utilizador e o Nome. Depois, selecione Criar.

    Captura de ecrã da caixa de diálogo 'Novo utilizador'.

    Nota

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

    test-user@azuresampledirectory.onmicrosoft.com

  3. Na página principal do registo da sua aplicação, selecione Funções da aplicação e, em seguida, selecione Criar função da aplicação. Forneça valores para os campos de formulário, selecione Deseja habilitar esta função de aplicativo?, em seguida, selecione Aplicar.

    Captura de ecrã do ecrã da aplicação 'Funções da aplicação' com o painel 'Criar função da aplicação' apresentado.

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

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

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

  7. Em Usuários, selecione Nenhum selecionado. Selecione o usuário criado anteriormente, selecione Selecionar e, em seguida, selecione Atribuir. Se você criou mais de uma função de aplicativo anteriormente, selecione uma função.

  8. Volte para o painel Usuários , selecione seu usuário de teste, selecione Redefinir senha e copie a senha. Você usará a senha quando fizer login em seu aplicativo mais adiante neste tutorial.

Configurar e compilar a sua aplicação

  1. Extraia os ficheiros do arquivo de projeto que criou e transferiu 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 seu 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=22222222-2222-2222-2222-222222222222
    # Specifies your App Registration's Application ID:
    spring.cloud.azure.active-directory.credential.client-id=11111111-1111-1111-1111-1111111111111111
    # Specifies your App Registration's secret key:
    spring.cloud.azure.active-directory.credential.client-secret=AbCdEfGhIjKlMnOpQrStUvWxYz==
    

    Em que:

    Parâmetro Description
    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 o ID de Diretório do Active Directory criado anteriormente.
    spring.cloud.azure.active-directory.credential.client-id Contém o ID da Aplicação do registo de aplicação concluído anteriormente.
    spring.cloud.azure.active-directory.credential.client-secret Contém o Valor da chave de registo de aplicação concluído anteriormente.
  4. Guarde e feche o ficheiro application.properties.

  5. Crie uma pasta com o nome controller na pasta de origem Java da sua aplicação. Por exemplo: src/main/java/com/wingtiptoys/security/controller.

  6. Crie um novo ficheiro Java com o nome HelloController.java na pasta controller e abra-o num editor de texto.

  7. Introduza o seguinte código e, em seguida, guarde e feche o ficheiro:

    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";
         }
    }
    

Criar e testar a sua aplicação

  1. Abra uma linha de comandos e altere o diretório para a pasta onde se encontra o ficheiro pom.xml.

  2. Crie a aplicação Spring Boot com o Maven e execute-a. Por exemplo:

    mvn clean package
    mvn spring-boot:run
    
  3. Depois que seu aplicativo for criado e iniciado pelo Maven, abra http://localhost:8080/Admin em um navegador da Web. Deverá ser-lhe pedido um nome de utilizador e uma palavra-passe.

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

    Nota

    Se estiver a iniciar sessão numa conta de utilizador nova pela primeira vez, poderá ser-lhe pedido que altere a palavra-passe.

    Captura de ecrã da caixa de diálogo da aplicação 'Atualize a sua palavra-passe'.

  4. Depois de iniciar sessão com êxito, deverá ver o texto de exemplo "Mensagem de administrador" do controlador.

    Captura de ecrã da mensagem do administrador da aplicação.

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.

Consulte também

Próximos passos

Para saber mais sobre o Spring e o Azure, avance para o centro de documentação relativa ao Spring no Azure.