"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Autenticación OAuth en Spring Boot: una guía para integrar el inicio de sesión de Google y GitHub

Autenticación OAuth en Spring Boot: una guía para integrar el inicio de sesión de Google y GitHub

Publicado el 2024-11-03
Navegar:330

Mejore la seguridad con OAuth 2.0: implementación de inicios de sesión sociales en Spring Boot

En el mundo del desarrollo web moderno, proteger sus aplicaciones y hacer que la autenticación sea lo más fluida posible para los usuarios es una prioridad absoluta. Ahí es donde entra en juego OAuth 2.0: es una herramienta poderosa que no solo ayuda a proteger sus API sino que también permite a los usuarios iniciar sesión con sus cuentas existentes desde plataformas como Google y GitHub. Esto facilita las cosas para todos: los usuarios no necesitan recordar otra contraseña y los desarrolladores obtienen una forma confiable de administrar la autenticación.

En este blog, lo guiaré paso a paso sobre cómo configurar OAuth 2.0 en una aplicación Spring Boot. Integraremos Google y GitHub para la autenticación, de modo que sus usuarios puedan elegir qué servicio desean usar para iniciar sesión. También le mostraré cómo proteger sus puntos finales API usando JWT (JSON Web Tokens), asegurando que solo los usuarios autenticados pueden acceder a los recursos que se supone que deben tener.

Ya sea que esté creando una nueva aplicación o agregando seguridad a una existente, esta guía le brindará las herramientas que necesita para mantener su aplicación Spring Boot segura y fácil de usar.

Visita https://start.spring.io/

crear el proyecto

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

Descarga el zip, extráelo y carga el proyecto en tu IDE.

La dependencia "OAuth2 Client" en Spring Boot simplifica la integración de la autenticación OAuth 2.0 con proveedores como Google y GitHub. Maneja todo el flujo de inicio de sesión de OAuth, incluida la redirección de los usuarios a la página de inicio de sesión del proveedor, la gestión de tokens y la protección de los puntos finales de API. Al agregar esta dependencia, puede habilitar fácilmente una autenticación segura y fácil de usar en su aplicación Spring Boot.

La dependencia "Spring Web" en Spring Boot es crucial para desarrollar aplicaciones web. Proporciona funciones esenciales como creación de API RESTful, compatibilidad con arquitectura MVC y la capacidad de ofrecer vistas HTML. Con Spring Web, puede manejar fácilmente solicitudes y respuestas HTTP, administrar el enrutamiento e integrarse con otros componentes de Spring, lo que lo convierte en una parte fundamental de la creación de aplicaciones web sólidas.

Configuración de la aplicación

Para configurar su aplicación Spring Boot para la autenticación OAuth 2.0 con Google y GitHub, deberá configurar el archivo application.properties. Este archivo contiene configuraciones esenciales para su aplicación, incluidas las credenciales del cliente OAuth, los niveles de registro y las configuraciones 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

Configuraciones del cliente OAuth: Reemplace YOUR_GOOGLE_CLIENT_ID, YOUR_GOOGLE_CLIENT_SECRET, YOUR_GITHUB_CLIENT_ID y YOUR_GITHUB_CLIENT_SECRET con las credenciales que obtiene de Google y GitHub cuando registra su aplicación.

Para registrar su aplicación con Google y GitHub para la autenticación OAuth 2.0, debemos ir a https://console.cloud.google.com

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

haga clic en Servicios API

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

Credenciales -> crear Credenciales -> ID de cliente OAuth

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

ID de cliente OAuth -> Crear ID de cliente OAuth

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

seleccione Tipo de aplicación para Aplicación web

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

dar el nombre de la aplicación

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

establezca URI de redireccionamiento autorizados con esta URL y aquí nuestra aplicación se ejecuta en el puerto 8000, por lo que el puerto de la aplicación es 8000. luego haga clic en crear

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

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

después de que se crea el cliente OAuth y obtenemos el ID del cliente y el secreto del cliente.

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

copie ambos y reemplácelos con las propiedades del archivo 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

La clase SecurityConfig configura la seguridad para una aplicación Spring Boot usando OAuth2. Define un bean SecurityFilterChain, que establece reglas de seguridad. El método AuthorizeHttpRequests garantiza que todas las solicitudes entrantes requieran autenticación. La línea .oauth2Login(Customizer.withDefaults()) habilita la funcionalidad de inicio de sesión de OAuth2 con la configuración predeterminada. Finalmente, el método securityFilterChain devuelve la cadena de filtros de seguridad configurada llamando a http.build(). Esta configuración garantiza que la aplicación sea segura y admita la autenticación OAuth2 para los usuarios.

Acceder a su aplicación a través de Chrome

Al desarrollar y probar su aplicación Spring Boot, es crucial saber cómo interactuar con ella a través de Postman. Si su aplicación se ejecuta localmente en el puerto 8000, puede acceder a ella utilizando la siguiente URL base:

http://localhost:8000

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

obtenemos una respuesta similar a esta

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

ahora podemos acceder a los puntos finales.

Autenticación de GitHub

La autenticación de GitHub en Spring Boot permite a los usuarios iniciar sesión con sus cuentas de GitHub, lo que agiliza el proceso de autenticación y mejora la seguridad. Al integrar GitHub como proveedor de OAuth 2.0, su aplicación puede autenticar usuarios a través de la plataforma confiable de GitHub. Esto implica registrar su aplicación en GitHub para obtener una ID de cliente y un secreto de cliente, que luego se configuran en su aplicación Spring Boot. Los usuarios son redirigidos a GitHub para iniciar sesión y, tras una autenticación exitosa, son redirigidos nuevamente a su aplicación con un token de acceso, lo que permite el acceso seguro a sus recursos protegidos. Esta integración es ideal para aplicaciones dirigidas a desarrolladores y usuarios expertos en tecnología.

crea una cuenta de GitHub y ve a configuración

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

en la esquina izquierda tenemos la configuración del desarrollador

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

Navega a aplicaciones OAuth

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

haga clic en crear aplicación OAuth

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

obtenemos la interfaz como esta

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

establecer ** URL de devolución de llamada de autorización ** según el puerto de su aplicación

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

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

y establecer URL de la página de inicio

http://localhost:8000

después de registrar la Aplicación obtenemos el ID del Cliente y el Secreto del Cliente

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

ahora reemplácelo con las propiedades del archivo 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

Pruebe el inicio de sesión de GitHub

Iniciar sesión con GitHub: cuando se le solicite, inicie sesión con sus credenciales de GitHub.
Redirección exitosa: tras una autenticación exitosa, serás redirigido a la página de inicio de tu aplicación.

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

Puedes explorar el código fuente completo del Servicio de autenticación de usuarios en mi repositorio de GitHub. Este proyecto muestra varias funciones, como registro de usuario, inicio de sesión y acceso seguro mediante JWT para la autenticación. ¡No dudes en consultarlo, contribuir o utilizarlo como referencia para tus propios proyectos!

Repositorio de GitHub: https://github.com/ishrivasayush/oauth2-authentication-service

Conclusión

Implementar OAuth 2.0 con Spring Boot, utilizando Google y GitHub como proveedores de autenticación, es una forma poderosa de mejorar la seguridad y usabilidad de su aplicación. Al permitir que los usuarios inicien sesión con sus cuentas existentes, se reduce la fricción y se proporciona una experiencia de usuario más fluida. Al mismo tiempo, proteger los puntos finales de su API con JWT garantiza que solo los usuarios autenticados tengan acceso a recursos confidenciales.

A través de esta guía, hemos cubierto todo, desde la configuración de credenciales de OAuth en Google y GitHub hasta la configuración de su aplicación Spring Boot para manejar la autenticación y proteger sus puntos finales. Si eres nuevo en OAuth 2.0 o buscas integrarlo en tus proyectos, estos pasos te ayudarán a crear un sistema de autenticación seguro y escalable.

La seguridad es un viaje sin fin, pero con las herramientas y prácticas adecuadas, puedes crear aplicaciones que sean seguras y fáciles de usar. Ahora que tiene una base sólida, puede explorar más agregando más proveedores, personalizando la experiencia del usuario o profundizando en las configuraciones de JWT. ¡Feliz codificación!

Declaración de liberación Este artículo se reproduce en: https://dev.to/ayushstwt/oauth-20-authentication-in-spring-boot-a-guide-to-integrating-google-and-github-login-2hga?1Si hay alguno infracción, comuníquese con [email protected] para eliminar
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3