Auth Service es un microservicio de autenticación desarrollado con Spring Boot, JWT y OAuth2, diseñado para gestionar la autenticación y autorización de usuarios dentro de un ecosistema de microservicios.
Este servicio permite la autenticación tanto mediante OAuth2 como por usuario y contraseña, asegurando flexibilidad y seguridad. Además, está preparado para ser ejecutado en entornos Dockerizados, facilitando su despliegue y escalabilidad.
- Spring Boot - Framework para el desarrollo del microservicio.
- Spring Security - Para la gestión de autenticación y autorización.
- JWT (JSON Web Token) - Para la gestión de autenticación basada en tokens.
- OAuth2 - Para autenticación con terceros.
- PostgreSQL - Base de datos para el almacenamiento de usuarios.
- Docker - Para la contenedorización y despliegue del servicio.
Antes de ejecutar el servicio, asegúrate de tener instalado:
- Java 17+
- Maven
- Docker y Docker Compose
- PostgreSQL (si se ejecuta sin Docker)
# Configuración general
spring.application.name=Auth Service
logging.level.org.springframework=DEBUG
logging.level.org.springframework.security=DEBUG
# Configuración de la base de datos PostgreSQL
spring.datasource.url=jdbc:postgresql://localhost:5432/auth-service
spring.datasource.username=usuarioDatBase
spring.datasource.password=contraseña
spring.datasource.driver-class-name=org.postgresql.Driver
# Configuración de JPA
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
# Swagger UI
springdoc.swagger-ui.path=/swagger-ui.html
# DevTools
spring.devtools.restart.enabled=true
spring.devtools.livereload.enabled=true
spring.devtools.add-properties=true
# JWT Configuración
jwt.secret=EstaEsUnaClaveSuperSeguraDeAlMenos32Caracteres123!
jwt.expiration=3600000
# Configuración de OAuth2
spring.security.oauth2.client.registration.my-client.client-id=my-client-id
spring.security.oauth2.client.registration.my-client.client-secret=my-client-secret
spring.security.oauth2.client.registration.my-client.authorization-grant-type=client_credentials
spring.security.oauth2.client.registration.my-client.scope=read
spring.security.oauth2.client.registration.my-client.provider=my-provider
# Definición del provider
spring.security.oauth2.client.provider.my-provider.token-uri=https://example.com/oauth2/token
-
Clona el repositorio:
git clone https://github.com/2A2G/auth-service.git cd auth-service
-
Configura las variables de entorno en
application.properties
o usa un archivo.env
. -
Construye el proyecto con Maven:
mvn clean package
-
Ejecuta el servicio localmente:
java -jar target/auth-service.jar
-
Para ejecutarlo con Docker:
docker build -t auth-service . docker run -p 8080:8080 auth-service
Puedes usar Docker Compose para desplegar el servicio junto con la base de datos:
docker-compose up -d
Este proyecto está bajo la Licencia MIT.
© 2025 2A2G.
Se permite el uso, modificación y distribución de este software de forma gratuita, siempre que se conserve este aviso de licencia.