SSO con Keycloak usando Docker Compose y Nginx
(du.nkel.dev)Configuración de SSO con Keycloak: uso de Docker Compose y Nginx
- Keycloak es una solución de gestión de identidad y acceso de código abierto, confiable y compatible con los principales protocolos de SSO.
- La configuración con Docker Compose no es compleja, pero no es intuitiva, por lo que se ofrece un resumen del proceso de configuración.
Conceptos
- Se usa una configuración estándar en la que Nginx funciona como proxy inverso central para dirigir el tráfico a servicios individuales a través de localhost.
- Se considera una configuración económica que comparte los recursos de un solo host mientras aísla al máximo cada entorno.
Requisitos previos
- Se necesitan herramientas básicas (SSH, una VM con Linux instalada, y un dominio o subdominio).
- Para configurar Docker rootless, se crea un nuevo usuario sin privilegios llamado
keycloakcon acceso sin contraseña, se actualizan los rangos de/etc/subuidy/etc/subgid, se instala Docker rootless y se configura el inicio automático del servicio.
Configuración de Keycloak
- Se inicia sesión con el usuario
keycloakrecién creado y se crean directorios para los datos persistentes y los archivos de Docker. - Siguiendo la documentación oficial, se escribe
docker-compose.ymly se coloca la información sensible y variable en el archivo.env.
Pruebas en local
- Se prueba el stack de Docker Compose, se crea un túnel SSH inverso hacia la VM y luego se verifica en el navegador la pantalla de bienvenida de Keycloak.
Configuración de Nginx
- Se configura Nginx como proxy inverso del sistema y se crea un nuevo archivo
.confde Nginx para el servicio de Keycloak. - En el registrador del dominio, se agrega un registro A para dirigir las consultas DNS a la IP de la VM.
Depuración
- Se abre
.tld.com, se inicia sesión en Keycloak con el usuario admin y se revisan los logs de Docker Compose, así como los logs de acceso y error de Nginx. - Si hace falta, también se revisa la base de datos de Keycloak.
Build personalizado con Dockerfile
- En lugar de usar la imagen preconstruida de quay.io, se construye una imagen propia con Dockerfile.
- Se reinicia Docker Compose para construir la imagen y arrancar el servicio.
Conclusión
- El servicio de Keycloak está corriendo detrás de un proxy inverso Nginx del sistema usando Docker rootless.
- Los siguientes pasos incluyen actualizaciones automáticas de los contenedores Docker, agregar inicio de sesión y correo electrónico al servicio de Keycloak, añadir realms y agregar temas.
Opinión de GN⁺:
- Importancia de la seguridad: el estado actual de la web hace difícil mantenerse al día con las vulnerabilidades relacionadas con la seguridad, por lo que es importante usar una solución confiable como Keycloak.
- Arquitectura eficiente: compartir recursos en un solo host mientras se aíslan los entornos es una forma rentable y fácil de administrar.
- Capacidad de personalización: un build personalizado con Dockerfile ofrece flexibilidad para adaptar Keycloak a necesidades propias.
1 comentarios
Comentarios de Hacker News
Opinión de un usuario que eligió Authelia:
Opinión de un usuario con experiencia usando JetBrains Hub y Keycloak, que eligió Dex:
latest.Opinión de un usuario que creó una tabla comparativa de servidores OpenID Connect:
Opinión de un usuario sobre los problemas de seguridad de Keycloak:
Opinión de un usuario que compartió su experiencia implementando Keycloak en AWS ECS:
Opinión de un usuario que hizo una mención positiva de Keycloakify:
Opinión de un usuario que comparó Authelia y Keycloak:
Opinión de un usuario que compartió su experiencia usando Keycloak:
Opinión de un usuario que probó Zitadel:
Opinión de un usuario que expresó las dificultades de usar Keycloak: