https://youtu.be/CQR8OyH-btM?si=H77bijE-YfrLiJxw
Descripción de Keycloak
Keycloak es una solución de gestión de identidades y accesos de código abierto que te permite añadir autenticación a tus aplicaciones y proteger servicios con un esfuerzo mínimo, sin necesidad de administrar el almacenamiento o la autenticación de usuarios de manera directa.
Originalmente desarrollado como un proyecto de la comunidad WildFly bajo Red Hat, Keycloak fue donado a la CNCF en abril de 2023, uniéndose como un proyecto en fase de incubación. Admite protocolos como OpenID Connect, OAuth 2.0 y SAML, y ofrece características como federación de usuarios, autenticación sólida, gestión de usuarios y autorización detallada.
A continuación, se muestra una lista de las principales características de Keycloak:
- Single Sign-On (SSO): Centraliza la autenticación para que los usuarios inicien sesión una sola vez y obtengan acceso a múltiples aplicaciones.
- Federación de usuarios: Se integra con repositorios de identidades externos (LDAP, Active Directory, etc.) para gestionar y autenticar a los usuarios desde una sola plataforma.
- Autenticación sólida: Implementa autenticación multifactor (MFA) con soporte para diversos factores (por ejemplo, contraseñas de un solo uso, WebAuthn).
- Autorización detallada: Define y hace cumplir políticas específicas para usuarios, roles y recursos dentro de tus aplicaciones.
- Control de acceso basado en roles (RBAC): Asigna permisos detallados a roles, simplificando la gestión de grandes cantidades de usuarios.
- Inicio de sesión social: Permite a los usuarios iniciar sesión a través de plataformas sociales (por ejemplo, Google, GitHub, Facebook) sin requerir una integración por separado.
- Servicios de token integrados: Genera y gestiona automáticamente tokens de acceso, identidad y renovación, alineados con los estándares de seguridad modernos.
Con estas capacidades, Keycloak elimina la carga de gestionar credenciales de usuario y flujos de seguridad, liberándote para centrarte en crear y escalar tus aplicaciones.
Usando Keycloak para nuestra arquitectura

A la hora de proteger el acceso tanto a la interfaz web como a las API de nuestros distintos componentes (Grafana, Grafana MIMIR, Grafana LOKI), Keycloak actua como el punto central de autenticación dentro de la arquitectura.
A grandes rasgos, su implementación sigue el siguiente flujo:
- Interceptación de peticiones en NGINX Proxy Manager
- Todas las solicitudes que llegan desde el navegador del usuario (o desde otros sistemas) pasan primero por NGINX Proxy Manager.
- En caso de que sea necesario autenticar la petición, NGINX redirige a Keycloak para que el usuario inicie sesión.
- Esto permite no tener que configurar la autenticación en cada una de las aplicaciones; dejándolas sin control de acceso internamente y exponiéndose de forma protegida externamente.
- Autenticación en Keycloak
- Keycloak valida las credenciales de los usuarios.
- Una vez autenticado con éxito, Keycloak emite tokens que prueban la identidad del usuario, manejando aspectos como su expiración y renovación.
- Estos tokens permiten que el usuario no tenga que iniciar sesión repetidamente en cada servicio.