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:
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
Navegue até https://start.spring.io/.
Especifique que você deseja gerar um projeto
Maven comJava , insira os de Grupoe nomes de Artefato para seu aplicativo.Adicione Dependências para Spring Web, Microsoft Entra IDe OAuth2 Client.
Na parte inferior da página, selecione o botão GERAR.
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.
Faça login em https://portal.azure.com.
Selecione Todos os serviços, Identitye, em seguida, Microsoft Entra ID.
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.
Quando terminar, selecione o link exibido para acessar o novo diretório.
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
No menu do portal, selecione Registos de aplicaçõese, em seguida, selecione Registar uma aplicação.
Especifique a sua aplicação e, em seguida, selecione Registar.
Quando a página de registro do aplicativo for exibida, copie o de ID do aplicativo
(cliente) e a ID do diretório application.properties(locatário) . Você usará esses valores para configurar seu arquivomais adiante neste tutorial. Selecione Certificados & Segredos no painel de navegação. Em seguida, selecione Novo segredo do cliente.
Adicione uma Descrição e selecione a duração na lista Expira. Selecione Adicionar. O valor da chave será preenchido automaticamente.
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.) Na página principal do registo da sua aplicação, selecione Autenticaçãoe selecione Adicionar uma plataforma . Em seguida, selecione aplicativos Web.
Introduza http://localhost:8080/login/oauth2/code/ como um novo URI de redirecionamento e, em seguida, seleccione Configurar.
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
Na página Visão Geral
do Active Directory, selecione Utilizadores e, em seguida, selecioneNovo utilizador .Quando o painel User está exibido, digite o Nome de Usuário e Nome. Em seguida, selecione Criar.
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
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.
Na página Visão Geral do
do diretório do Microsoft Entra, selecione Aplicações empresariais .Selecione Todos os aplicativose, em seguida, selecione o aplicativo ao qual você adicionou a função de aplicativo em uma etapa anterior.
Selecione Usuários e grupose, em seguida, selecione Adicionar usuário/grupo.
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.
Volte para o painel Usuários
, selecione seu usuário de teste e selecione Redefinir senha e copie a senha. Você usará a senha quando fizer login em seu aplicativo mais adiante neste tutorial.
Configurar e compilar seu aplicativo
Extraia os arquivos do arquivo do projeto que você criou e baixou anteriormente neste tutorial em um diretório.
Navegue até a pasta
src/main/resources em seu projeto e, em seguida, abra o arquivo application.propertiesem um editor de texto. 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. Guarde e feche o ficheiro application.properties.
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.
Crie um novo arquivo Java chamado
HelloController.java na pasta do controladore abra-o em um editor de texto. 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
Abra um prompt de comando e altere o diretório para a pasta onde o arquivo pom.xml do seu aplicativo está localizado.
Crie seu aplicativo Spring Boot com o Maven e execute-o. Por exemplo:
mvn clean package mvn spring-boot:run
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.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.
Depois de iniciar sessão com êxito, deverá ver o texto de exemplo "Mensagem de administrador" do controlador.
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
- Para obter informações sobre as novas opções de interface do usuário, consulte guia de treinamento de registro de novo aplicativo do portal do Azure
Próximos passos
Para saber mais sobre o Spring e o Azure, continue para o centro de documentação do Spring on Azure.