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:
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 a Java no Azure e Azure Stack.
- Apache Maven, versão 3.0 ou superior.
- Uma subscrição do Azure. Se não tiver uma subscrição 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 uma aplicação com o Spring Initializr
Navegue para https://start.spring.io/.
Especifique que pretende gerar um projeto Maven com Java, introduza os nomes de Group (Grupo) e Artifact (Artefacto) para a sua aplicação.
Adicione dependências para o Spring Web, Microsoft Entra ID e OAuth2 Client.
Na parte inferior da página, selecione o botão GERAR .
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.
Inicie sessão em https://portal.azure.com.
Selecione Todos os serviços, Identidade e ID do Microsoft Entra.
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.
Quando terminar, selecione o link exibido para acessar o novo diretório.
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
No menu do portal, selecione Registos de aplicações e, em seguida, selecione Registar uma aplicação.
Especifique seu aplicativo e selecione Registrar.
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.
Selecione Certificados & segredos no painel de navegação esquerdo. Em seguida, selecione Novo segredo do cliente.
Adicione uma Descrição e selecione a duração na lista Expira em. Selecione Adicionar. O valor da chave será preenchido automaticamente.
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.)
Na página principal do registro do seu aplicativo, selecione Autenticação e selecione Adicionar uma plataforma. Em seguida, selecione Aplicativos Web.
Insira http://localhost:8080/login/oauth2/code/ como um novo URI de redirecionamento e selecione Configurar.
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
Na página Visão geral do Ative Directory, selecione Usuários e, em seguida, selecione Novo usuário.
Quando for apresentado o painel Utilizador, introduza o Nome de utilizador e o Nome. Depois, selecione Criar.
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
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.
Na página Visão geral do diretório do Microsoft Entra, selecione Aplicativos corporativos.
Selecione Todos os aplicativos e, em seguida, selecione o aplicativo ao qual você adicionou a função de aplicativo em uma etapa anterior.
Selecione Usuários e grupos e, em seguida, selecione Adicionar usuário/grupo.
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.
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
Extraia os ficheiros do arquivo de projeto que criou e transferiu anteriormente neste tutorial para um diretório.
Navegue até a pasta src/main/resources em seu projeto e abra o arquivo application.properties em 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>
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. Guarde e feche o ficheiro application.properties.
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.
Crie um novo ficheiro Java com o nome HelloController.java na pasta controller e abra-o num editor de texto.
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
Abra uma linha de comandos e altere o diretório para a pasta onde se encontra o ficheiro pom.xml.
Crie a aplicação Spring Boot com o Maven e execute-a. 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.Nota
Se estiver a iniciar sessão numa conta de utilizador nova pela primeira vez, poderá ser-lhe pedido que altere a palavra-passe.
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.
Consulte também
- Para obter informações sobre novas opções de interface do usuário, consulte Novo guia de treinamento de registro de aplicativo do portal do Azure
Próximos passos
Para saber mais sobre o Spring e o Azure, avance para o centro de documentação relativa ao Spring no Azure.