Partilhar via


Adicionar iniciar sessão com a conta Microsoft Entra a uma aplicação web do Spring

Este artigo mostra como desenvolver um aplicativo Web Spring que ofereça suporte à entrada por conta do 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:

  • Um Java Development Kit (JDK) suportado. Para obter mais informações sobre os JDKs disponíveis para uso ao desenvolver no Azure, consulte suporte Java no Azure e 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 Maven com Java, insira os de Grupo e nomes de Artefato para seu aplicativo.

  3. Adicione Dependências para Spring Web, Microsoft Entra IDe 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 instância do Microsoft Entra

Criar a instância do Ative Directory

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

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

  2. Selecione Todos os serviços, Identitye, em seguida, Microsoft Entra ID.

  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. Levará alguns minutos para criar o novo recurso.

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

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

Adicionar um registro de aplicativo para seu aplicativo Spring Boot

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

  2. Especifique a sua aplicação e, em seguida, selecione Registar.

  3. Quando a página de registro do aplicativo for exibida, copie o de 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. Em seguida, selecione Novo segredo do cliente.

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

  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 de application.properties posteriormente 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 registo da sua aplicação, selecione Autenticaçãoe selecione Adicionar uma plataforma . Em seguida, selecione aplicativos Web.

  8. Introduza http://localhost:8080/login/oauth2/code/ como um novo URI de redirecionamento e, em seguida, seleccione Configurar.

  9. Se você modificou o arquivo de 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, em seguida, 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 Active Directory, selecione Utilizadorese, em seguida, selecione Novo utilizador.

  2. Quando o painel User está exibido, digite o Nome de Usuário e Nome. Em seguida, selecione Criar.

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

    Observação

    Você precisa especificar a URL do diretório mencionada anteriormente neste tutorial ao introduzir o nome de utilizador. Por exemplo:

    test-user@azuresampledirectory.onmicrosoft.com

  3. Na página principal do registo da sua aplicação, selecione Funções da aplicaçãoe, em seguida, selecione Criar função da aplicação. Forneça valores para os campos de formulário, selecione Deseja habilitar essa função de aplicativo?e, 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 do diretório do Microsoft Entra, selecione Aplicações 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, em seguida, selecione Adicionar usuário/grupo.

  7. Em Usuários, selecione Nenhum selecionado. Selecione o usuário que você criou anteriormente, selecione Selecionare, 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 e selecione Redefinir senhae copie a senha. Você usará a senha quando fizer login 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 em um diretório.

  2. Navegue até a pasta src/main/resources em seu projeto e, em seguida, 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=<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 Habilite os recursos fornecidos pelo spring-cloud-azure-starter-active-directory
    spring.cloud.azure.active-directory.profile.tenant-id Contém o ID de Directório do Active Directory de anteriormente.
    spring.cloud.azure.active-directory.credential.client-id Contém o ID de Aplicação do registo da aplicação que completou anteriormente.
    spring.cloud.azure.active-directory.credential.client-secret Contém o valor da chave de registro do aplicativo que você concluiu anteriormente.
  4. Guarde e feche o ficheiro application.properties.

  5. Crie uma pasta chamada controlador na pasta de código-fonte Java para sua aplicação. 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. Digite o seguinte código, 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 teste seu aplicativo

  1. Abra um prompt de comando e altere o diretório para a pasta onde o arquivo pom.xml do seu 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 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.

    Observação

    Poderá ser-lhe pedido para alterar a sua palavra-passe se este for o primeiro início de sessão para uma nova conta de utilizador.

    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 tela da mensagem do 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.

Ver também

Próximos passos

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