"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Autenticação OAuth no Spring Boot: um guia para integrar o login do Google e do GitHub

Autenticação OAuth no Spring Boot: um guia para integrar o login do Google e do GitHub

Publicado em 2024-11-03
Navegar:668

Aprimore a segurança com OAuth 2.0: implementando logins sociais no Spring Boot

No mundo do desenvolvimento web moderno, proteger seus aplicativos e tornar a autenticação o mais simples possível para os usuários é uma prioridade máxima. É aí que entra o OAuth 2.0: é uma ferramenta poderosa que não apenas ajuda a proteger suas APIs, mas também permite que os usuários façam login com suas contas existentes em plataformas como Google e GitHub. Isso torna as coisas mais fáceis para todos: os usuários não precisam se lembrar de mais uma senha e os desenvolvedores obtêm uma maneira confiável de gerenciar a autenticação.

Neste blog, mostrarei passo a passo como configurar o OAuth 2.0 em um aplicativo Spring Boot. Estaremos integrando o Google e o GitHub para autenticação, para que seus usuários possam escolher qual serviço desejam usar para fazer login. Também mostrarei como proteger seus endpoints de API usando JWT (JSON Web Tokens), garantindo que apenas usuários autenticados podem acessar os recursos que deveriam.

Esteja você criando um novo aplicativo ou adicionando segurança a um já existente, este guia fornecerá as ferramentas necessárias para manter seu aplicativo Spring Boot seguro e fácil de usar.

Visite https://start.spring.io/

crie o projeto

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

Baixe o zip, extraia-o e carregue o projeto em seu IDE.

A dependência "OAuth2 Client" no Spring Boot simplifica a integração da autenticação OAuth 2.0 com provedores como Google e GitHub. Ele lida com todo o fluxo de login do OAuth, incluindo o redirecionamento de usuários para a página de login do provedor, o gerenciamento de tokens e a proteção de endpoints de API. Ao adicionar essa dependência, você pode ativar facilmente a autenticação segura e fácil de usar em seu aplicativo Spring Boot.

A dependência "Spring Web" no Spring Boot é crucial para o desenvolvimento de aplicações web. Ele fornece recursos essenciais como criação de API RESTful, suporte à arquitetura MVC e a capacidade de servir visualizações HTML. Com Spring Web, você pode lidar facilmente com solicitações e respostas HTTP, gerenciar roteamento e integrar-se a outros componentes Spring, tornando-o uma parte fundamental da construção de aplicativos web robustos.

Configuração do aplicativo

Para configurar seu aplicativo Spring Boot para autenticação OAuth 2.0 com Google e GitHub, você precisará configurar o arquivo application.properties. Este arquivo contém configurações essenciais para seu aplicativo, incluindo credenciais do cliente OAuth, níveis de registro e configurações JWT.

spring.application.name=oauth2-authentication-service
server.port=8000

#for google
spring.security.oauth2.client.registration.google.client-id=YOUR_GOOGLE_CLIENT_ID
spring.security.oauth2.client.registration.google.client-secret=YOUR_GOOGLE_CLIENT_SECRET

#for github
spring.security.oauth2.client.registration.github.client-id=YOUR_GITHUB_CLIENT_ID
spring.security.oauth2.client.registration.github.client-secret= YOUR_GITHUB_CLIENT_SECRET

Configurações do cliente OAuth: Substitua YOUR_GOOGLE_CLIENT_ID, YOUR_GOOGLE_CLIENT_SECRET, YOUR_GITHUB_CLIENT_ID e YOUR_GITHUB_CLIENT_SECRET pelas credenciais que você obtém do Google e do GitHub ao registrar seu aplicativo.

Para registrar seu aplicativo no Google e GitHub para autenticação OAuth 2.0, precisamos acessar https://console.cloud.google.com

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

clique em Serviços API

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

Credenciais -> criar credenciais -> ID do cliente OAuth

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

ID do cliente OAuth -> Criar ID do cliente OAuth

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

selecione Tipo de aplicativo para aplicativo web

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

forneça o nome do aplicativo

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

definir URIs de redirecionamento autorizados com este URL e aqui nosso aplicativo está sendo executado na porta 8000, então a porta do aplicativo é 8000. em seguida, clique em criar

http://localhost:8000/login/oauth2/code/google

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

depois que o cliente OAuth é criado e obtemos o ID do cliente e o segredo do cliente.

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

copie ambos e substitua pelas propriedades do arquivo application.properties

spring.security.oauth2.client.registration.google.client-id=YOUR_GOOGLE_CLIENT_ID
spring.security.oauth2.client.registration.google.client-secret=YOUR_GOOGLE_CLIENT_SECRET

A classe SecurityConfig configura a segurança para um aplicativo Spring Boot usando OAuth2. Ele define um bean SecurityFilterChain, que configura regras de segurança. O método authorizeHttpRequests garante que todas as solicitações recebidas exijam autenticação. A linha .oauth2Login(Customizer.withDefaults()) habilita a funcionalidade de login do OAuth2 com configurações padrão. Finalmente, o método securityFilterChain retorna a cadeia de filtros de segurança configurada chamando http.build(). Essa configuração garante que o aplicativo seja seguro e ofereça suporte à autenticação OAuth2 para usuários.

Acessando seu aplicativo via Chrome

Ao desenvolver e testar seu aplicativo Spring Boot, é crucial saber como interagir com ele através do Postman. Se seu aplicativo estiver sendo executado localmente na porta 8000, você poderá acessá-lo usando o seguinte URL base:

http://localhost:8000

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

obtemos uma resposta semelhante a esta

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

agora podemos acessar os pontos finais.

Autenticação GitHub

A autenticação GitHub no Spring Boot permite que os usuários façam login usando suas contas GitHub, agilizando o processo de autenticação e aumentando a segurança. Ao integrar o GitHub como um provedor OAuth 2.0, seu aplicativo pode autenticar usuários por meio da plataforma confiável do GitHub. Isso envolve registrar seu aplicativo no GitHub para obter um ID de cliente e um segredo de cliente, que são então configurados em seu aplicativo Spring Boot. Os usuários são redirecionados ao GitHub para login e, após a autenticação bem-sucedida, são redirecionados de volta ao seu aplicativo com um token de acesso, permitindo acesso seguro aos seus recursos protegidos. Essa integração é ideal para aplicativos direcionados a desenvolvedores e usuários com experiência em tecnologia.

crie uma conta GitHub e vá para configurações

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

no canto esquerdo temos as configurações do desenvolvedor

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

Navegue até aplicativos OAuth

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

clique em criar aplicativo OAuth

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

obtemos a interface assim

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

definir ** URL de retorno de chamada de autorização ** de acordo com a porta do seu aplicativo

http://localhost:8000/login/oauth2/code/github

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

e defina o URL da página inicial

http://localhost:8000

após registrar o Aplicativo obtemos o ID do Cliente e Segredo do Cliente

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

agora substitua pelas propriedades do arquivo Application.properties

spring.security.oauth2.client.registration.github.client-id=Ov23liBMLc5e1ItoONPx
spring.security.oauth2.client.registration.github.client-secret= 

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

Teste o login do GitHub

Login com GitHub: quando solicitado, faça login com suas credenciais do GitHub.
Redirecionamento de sucesso: após a autenticação bem-sucedida, você será redirecionado para a página /home do seu aplicativo.

OAuth  Authentication in Spring Boot: A Guide to Integrating Google and GitHub Login

Você pode explorar o código-fonte completo do serviço de autenticação de usuário em meu repositório GitHub. Este projeto apresenta vários recursos, como registro de usuário, login e acesso seguro usando JWT para autenticação. Fique à vontade para conferir, contribuir ou usá-lo como referência para seus próprios projetos!

Repositório GitHub: https://github.com/ishrivasayush/oauth2-authentication-service

Conclusão

Implementar OAuth 2.0 com Spring Boot, usando Google e GitHub como provedores de autenticação, é uma maneira poderosa de aprimorar a segurança e a usabilidade de seu aplicativo. Ao permitir que os usuários façam login com suas contas existentes, você reduz o atrito e proporciona uma experiência de usuário mais tranquila. Ao mesmo tempo, proteger os endpoints da API com JWT garante que apenas usuários autenticados tenham acesso a recursos confidenciais.

Por meio deste guia, cobrimos tudo, desde a configuração de credenciais OAuth no Google e GitHub até a configuração de seu aplicativo Spring Boot para lidar com a autenticação e proteger seus endpoints. Quer você seja novo no OAuth 2.0 ou queira integrá-lo aos seus projetos, essas etapas o ajudarão a construir um sistema de autenticação seguro e escalonável.

A segurança é uma jornada sem fim, mas com as ferramentas e práticas certas, você pode criar aplicativos que sejam seguros e fáceis de usar. Agora que você tem uma base sólida, pode explorar ainda mais adicionando mais provedores, personalizando a experiência do usuário ou se aprofundando nas configurações do JWT. Boa codificação!

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/ayushstwt/oauth-20-authentication-in-spring-boot-a-guide-to-integrating-google-and-github-login-2hga?1Se houver algum violação, entre em contato com [email protected] para excluir
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3