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:

  1. 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.
  2. 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.
  3. Autenticación sólida: Implementa autenticación multifactor (MFA) con soporte para diversos factores (por ejemplo, contraseñas de un solo uso, WebAuthn).
  4. Autorización detallada: Define y hace cumplir políticas específicas para usuarios, roles y recursos dentro de tus aplicaciones.
  5. Control de acceso basado en roles (RBAC): Asigna permisos detallados a roles, simplificando la gestión de grandes cantidades de usuarios.
  6. 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.
  7. 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

architecture_keycloak.png

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:

  1. Interceptación de peticiones en NGINX Proxy Manager
  2. Autenticación en Keycloak