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:
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
Navegue até https://start.spring.io/.
Especifique que você deseja gerar um projeto de Maven com Java, insira os nomes de Grupo e Artefato para seu aplicativo.
Adicione as Dependências para Spring Web, ID do Microsoft Entra e 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 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.
Faça logon em https://portal.azure.com.
Selecione Todos os serviços, depois Identidade e então ID do Microsoft Entra.
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.
Quando concluir, selecione o link exibido para acessar o novo diretório.
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
No menu do portal, selecione Registros de aplicativo e escolha Registrar um aplicativo.
Especifique seu aplicativo e selecione Registrar.
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.
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. Selecione Adicionar. O valor da chave será preenchido automaticamente.
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.)
Na página principal do registro do aplicativo, selecione de Autenticação e selecione Adicionar uma plataforma. Depois, selecione Aplicativos Web.
Para um novo URI de Redirecionamento, insira
http://localhost:8080/login/oauth2/code/
e selecione Configurar.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
Na página Visão Geral do Active Directory, selecione Usuáriose selecione Novo usuário.
Quando o painel Usuário for exibido, insira o Nome de usuário e o Nome. Em seguida, selecione Criar.
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
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.
Na página Visão geral do diretório do Microsoft Entra, selecione Aplicativos 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 selecione Adicionar usuário/grupo.
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.
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
Extraia os arquivos do arquivo do projeto que você criou e baixou 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 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. Salve e feche o arquivo application.properties.
Crie uma pasta chamada controlador na pasta de origem Java para seu aplicativo. 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. 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
Abra um prompt de comando e altere o diretório para a pasta em que o arquivo pom.xml do 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 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.Nota
Você poderá ser solicitado a alterar sua senha se esse for o primeiro logon de uma nova conta de usuário.
Depois de fazer logon com êxito, você deverá ver o texto de exemplo "Mensagem de administrador" do controlador.
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
- 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óximas etapas
Para saber mais sobre o Spring e o Azure, prossiga para o centro de documentação do Spring on Azure.