Skip to main content

Keycloak

gitlab

Repositorio Oficial Github

Keycloak es una solución de código abierto de Gestión de Identidad y Acceso (IAM) robusta y altamente configurable, desarrollada por Red Hat (originalmente por la comunidad JBoss). Su objetivo es simplificar la seguridad de aplicaciones y servicios, permitiendo que los desarrolladores se concentren en la lógica de negocio en lugar de reimplementar complejos mecanismos de autenticación y autorización.

¿Qué es la Gestión de Identidad y Acceso (IAM)?

Antes de profundizar en Keycloak, es crucial entender el concepto de IAM. IAM es el marco de políticas y tecnologías que garantiza que:

  1. Identidades correctas: Los usuarios, servicios o dispositivos son quienes afirman ser (autenticación). Es la función principal de Keycloak, garantizar quién es el usuario.
  2. Acceso apropiado: Esas identidades tienen los permisos adecuados para acceder a recursos específicos (autorización).
  3. Gestión eficiente: Las identidades y sus accesos se gestionan de forma centralizada y segura a lo largo de su ciclo de vida.

Entonces, Keycloak se sitúa en la línea de la autenticación con capacidad de autorización — pero no es un gestor IAM completo.

Conceptos importantes a tener en cuenta:

  • Workforce IAM (Gestión de Identidad y Acceso para la Fuerza Laboral):
    • ¿Quiénes son los usuarios? Empleados, contratistas, socios comerciales – básicamente, cualquier persona que necesite acceso a los sistemas internos de tu empresa para realizar su trabajo.
    • ¿A qué acceden? Aplicaciones internas, sistemas de RRHH, correo corporativo, VPN, herramientas de desarrollo, y también aplicaciones SaaS que la empresa usa (como Salesforce, Office 365, Slack, Jira, etc.).
    • Objetivo principal: Seguridad corporativa, productividad de los empleados, conformidad (garantizar que las personas adecuadas tengan el acceso correcto a los recursos correctos), gestión del ciclo de vida de la identidad (incorporación, baja, promociones).
    • Ejemplo: Un empleado de marketing usando su login corporativo para acceder a Salesforce (el CRM de la empresa), el sistema de correo y la intranet.
    • Soluciones enfocadas aquí: Okta (tradicionalmente muy fuerte aquí), Azure AD (para empresas en el ecosistema Microsoft), OneLogin, y el propio Keycloak puede usarse para esto.
  • CIAM (Customer Identity and Access Management - Gestión de Identidad y Acceso del Cliente):
    • ¿Quiénes son los usuarios? Clientes, consumidores, usuarios finales de tus productos o servicios digitales.
    • ¿A qué acceden? Tu sitio web público, tu tienda online, tu aplicación móvil, tu portal del cliente, foros de la comunidad.
    • Objetivo principal: Experiencia de usuario fluida (registro e inicio de sesión fáciles), escalabilidad para millones de usuarios, personalización, recopilación de datos para marketing (con consentimiento), seguridad de la cuenta del cliente.
    • Ejemplo: Un cliente creando una cuenta en tu e-commerce para hacer una compra, o iniciando sesión en tu aplicación de streaming de vídeo. Soluciones enfocadas aquí: Auth0 (muy fuerte en CIAM), Azure AD B2C, Amazon Cognito, Firebase Authentication, y Keycloak también se utiliza ampliamente para CIAM.

¿Por qué usar Keycloak? (Principales Problemas que Resuelve)

En entornos con múltiples aplicaciones y servicios, gestionar identidades y accesos puede convertirse en una pesadilla:

  • Múltiples Inicios de Sesión: Los usuarios necesitan credenciales diferentes para cada aplicación, resultando en mala experiencia de usuario y fatiga de contraseñas.
  • Lógica de Seguridad Duplicada: Cada aplicación reimplementa flujos de inicio de sesión, registro, recuperación de contraseña, gestión de sesión, etc., aumentando el esfuerzo de desarrollo y el riesgo de vulnerabilidades.
  • Gestión Descentralizada de Usuarios: Dificultad para mantener a los usuarios y sus permisos sincronizados entre sistemas, especialmente en lo que respecta a los grupos y funciones atribuidas a cada usuario, que se usan para control de acceso.
  • Inconsistencia de Seguridad: Diferentes implementaciones pueden llevar a diferentes niveles de seguridad.
  • Integración Compleja: Añadir inicio de sesión social o integración con proveedores de identidad corporativos (como LDAP/AD) es complejo.
  • Seguridad de APIs: Proteger APIs de forma consistente es un desafío.

Keycloak resuelve estos problemas proporcionando una plataforma centralizada para:

  • Single Sign-On (SSO) y Single Sign-Out (SLO): Autentícate una vez y accede a múltiples aplicaciones.
  • Gestión de Identidad: Crea y gestiona usuarios, sus atributos y credenciales.
  • Identity Brokering: Integración con proveedores de identidad externos (Google, Facebook, GitHub, SAML, OIDC).
  • User Federation: Sincroniza usuarios de almacenamientos existentes (LDAP, Active Directory).
  • Seguridad de APIs: Protege tus APIs usando OAuth 2.0.
  • Autorización Fina: Permite definir políticas de acceso granulares dentro del ecosistema gestionado, basadas en roles, grupos y atributos, ideal para controles simples a intermedios, pero no es lo ideal para políticas muy complejas, dinámicas o que involucren varios sistemas diferentes, pues no es un motor de políticas dedicado.
    • En la práctica, muchos equipos usan Keycloak solo para autenticación + roles básicos, y delegan la autorización fina a sistemas externos.
  • Soporte a Estándares: Implementa protocolos estándar de la industria como OpenID Connect (OIDC), OAuth 2.0 y SAML 2.0.

Alternativas a Keycloak

Keycloak es una solución de Gestión de Identidad y Acceso (IAM) de código abierto robusta y muy popular. Para entender cuán bueno es, siempre es conveniente compararlo con otras herramientas u otra pila de tecnología.

Sus competidores pueden dividirse en algunas categorías:

Soluciones de Código Abierto / Autoalojadas (Self-Hosted):

Ory Stack (Kratos, Hydra, Keto, Oathkeeper):

La gran ventaja del Ory Stack sobre Keycloak reside en:

  1. Control Total sobre la Experiencia del Usuario (Headless):

    • Keycloak: Te da páginas de inicio de sesión, registro, etc., listas. Puedes personalizarlas (temas), pero estás fundamentalmente trabajando dentro de la estructura que Keycloak ofrece. Para cambios radicales en la UI o flujos muy específicos, puede ser limitante o requerir un esfuerzo considerable en Java (SPIs).
    • Ory Stack (Kratos): No te da NINGUNA interfaz de usuario lista. Solo te da APIs. Construyes tu pantalla de inicio de sesión, registro, perfil, etc., desde cero, exactamente como quieras, usando la tecnología de front-end que prefieras (React, Vue, Angular, etc.), y esas pantallas llaman a las APIs de Kratos.
    • Ventaja de Ory aquí: Libertad absoluta para crear una experiencia de usuario 100% integrada con tu marca y tus flujos, sin las ataduras de una UI predefinida. Ideal si tienes un equipo de front-end fuerte y quieres que la identidad sea una parte imperceptible y fluida de tu aplicación.
  2. Modularidad y Arquitectura para Microservicios:

    • Keycloak: Es una aplicación más monolítica (aunque puede escalarse). Si solo necesitas un servidor OAuth2, por ejemplo, aún ejecutas "todo Keycloak".
    • Ory Stack: Es un conjunto de herramientas especializadas:
      • ¿Necesitas gestión de usuarios (inicio de sesión, registro)? Usa Kratos.
      • ¿Necesitas solo un servidor OAuth2/OIDC para proteger APIs? Usa Hydra.
      • ¿Necesitas un sistema de permisos súper granular y desacoplado? Usa Keto.
      • ¿Necesitas un proxy para validar tokens en el borde? Usa Oathkeeper.
    • Ventaja de Ory aquí: Solo despliegas y escalas lo que necesitas. Cada componente es independiente, escrito en Go (generalmente más ligero en recursos que Java para el mismo nivel de concurrencia), y encaja naturalmente en arquitecturas de microservicios donde cada servicio tiene una responsabilidad clara.
  3. Autorización Desacoplada y Poderosa (con Keto):

    • Keycloak: Ofrece un buen sistema de autorización basado en RBAC (Role-Based Access Control) y puede extenderse.
    • Ory Keto: Es un servidor de permisos dedicado, inspirado en Zanzibar de Google. Permite modelar relaciones complejas y consultas de permisos ("¿El usuario X puede hacer la acción Y en el recurso Z?"), de forma centralizada y desacoplada de tus aplicaciones.
    • Ventaja de Ory aquí: Si tienes requisitos de autorización muy complejos, dinámicos o que necesitan gestionarse centralmente para múltiples microservicios, Keto es una herramienta muy poderosa y especializada que Keycloak no ofrece de forma nativa con el mismo nivel de sofisticación.

¿Cuándo es mejor Keycloak entonces?

  • Necesito una solución IAM completa y robusta "out-of-the-box" con interfaces de administración y de usuario listas.
  • El tiempo para poner en marcha es crítico y no quiero (o no tengo recursos para) construir todas las UIs de identidad desde cero.
  • El equipo tiene más familiaridad con Java y el ecosistema de la JVM.
  • Necesito funcionalidades como federación SAML/OIDC con muchos proveedores empresariales de forma simple.
  • La personalización de la UI mediante temas es suficiente para las necesidades de la marca.
  • El proyecto es un monolito o un número menor de servicios donde la naturaleza más integrada de Keycloak no es un problema.
  • Necesito un ecosistema maduro con vasta documentación, comunidad y muchos tutoriales.

Keycloak: Es como comprar un coche completo de fábrica. Ya viene con todo lo que necesitas para conducir, tiene un panel, asientos, etc. Puedes cambiar el color, las ruedas, el sistema de sonido (personalizar), pero la estructura básica del coche es esa. Es genial para la mayoría de las personas que quieren un coche funcional rápidamente.

¿Cuándo usaría el Ory Stack entonces?

  • Estoy construyendo un producto donde la experiencia de usuario de identidad necesita ser 100% personalizada e integrada (sin aspecto de "página de inicio de sesión estándar").
  • La arquitectura se basa en microservicios y quiero que cada componente de IAM (identidad, OAuth2, permisos) sea un servicio independiente, escalable y ligero (Go).
  • Tengo un equipo de desarrollo (especialmente front-end) capaz y dispuesto a construir las UIs de identidad consumiendo APIs.
  • Necesito un sistema de autorización (permisos) muy granular, desacoplado y centralizado (Ory Keto).
  • Quiero la flexibilidad de usar solo las partes del IAM que necesito (ej: solo Ory Hydra como servidor OAuth2).
  • El equipo tiene preferencia o experiencia con Go.
  • Estoy buscando un enfoque más "moderno" y "cloud-native" para IAM, incluso si eso significa más trabajo de desarrollo inicial en la UI.

Ory Stack: Es como recibir un motor de alto rendimiento (Kratos para identidad, Hydra para OAuth2), un chasis ligero (Oathkeeper), y un sistema de navegación y control súper avanzado (Keto). Necesitas construir la carrocería, el interior, el panel desde cero, exactamente como sueñas. Da más trabajo, pero el resultado final es totalmente tuyo y adaptado a tus necesidades más específicas.


Gluu Server:

Gluu Server es una plataforma IAM de código abierto, conocida principalmente por su fuerte soporte al estándar UMA (User-Managed Access), ideal para dar a los usuarios control granular sobre el compartir sus datos. Sin embargo, en la práctica, para la mayoría de los escenarios, Gluu Server no presenta ventajas significativas que justifiquen elegirlo en lugar de Keycloak. Keycloak generalmente tiene la ventaja debido a su comunidad mucho mayor, mayor facilidad de uso percibida para tareas comunes, y un ecosistema y desarrollo más vibrantes. Por lo tanto, a menos que UMA sea un diferencial crítico e insustituible para tu proyecto, Keycloak tiende a ser la elección más pragmática y difundida para una solución IAM de código abierto completa.

WSO2 Identity Server:

Otra robusta plataforma IAM de código abierto, construida en Java. Se destaca en escenarios de integración empresarial compleja, especialmente si ya utilizas otros productos WSO2 (como el API Manager). Además, ofrece soporte nativo y fuerte a XACML para control de acceso fino basado en políticas, un diferencial para requisitos de autorización muy específicos. Sin embargo, para la mayoría de las necesidades de IAM, WSO2 Identity Server puede considerarse más complejo y "pesado" que Keycloak.

Keycloak, con su comunidad mayor, documentación más accesible y una curva de aprendizaje generalmente más suave para funcionalidades comunes, tiende a ser una elección más ágil. La configuración y la profundidad de recursos de WSO2 IS pueden ser excesivas si tus necesidades son más directas (como SSO, gestión básica de usuarios y protección de APIs con OIDC).

La combinación de Keycloak + OPA (Open Policy Agent) y Ory Stack se consideran frecuentemente un enfoque más moderno, flexible y, en muchos aspectos, más poderoso para autorización que el motor XACML integrado en WSO2 Identity Server.

Dex:

Aquí la diferencia es bastante clara porque tienen propósitos fundamentalmente distintos, aunque ambos operan en el espacio de identidad y usan OpenID Connect (OIDC). Dex es principalmente un proveedor de identidad OpenID Connect (OIDC) que actúa como un "conector" o "broker" para otros proveedores de identidad (IdPs).

  • Función Principal: Permite que aplicaciones que solo entienden OIDC (como Kubernetes) se autentiquen a través de una variedad de backends de identidad que pueden no hablar OIDC nativamente o que quieras federar.
  • Backends Soportados (Conectores): LDAP, SAML 2.0, GitHub, Google, Microsoft, etc.
  • No hace (o hace muy poco):
    • No gestiona usuarios directamente: Dex no tiene su propia base de datos de usuarios para crear, actualizar o eliminar cuentas. Delega esto a los IdPs upstream.
    • No tiene UI de administración robusta: La configuración se hace principalmente mediante archivos YAML.
    • No tiene funcionalidades avanzadas de IAM: Como autorización fina, flujos de autenticación complejos, gestión de sesión avanzada, portales de usuario, etc.
    • Caso de Uso Típico: Permitir que usuarios se autentiquen en Kubernetes (u otras aplicaciones compatibles con OIDC) usando credenciales de Active Directory (vía LDAP), de un proveedor SAML corporativo, o cuentas de GitHub.

Casdoor:

Casdoor es un jugador más nuevo en el escenario de IAM de código abierto, pero que ha llamado la atención por su enfoque y foco. Una plataforma de Gestión de Identidad y Acceso (IAM) de código abierto, construida en Go (menor consumo de recursos e implementación más ligera) y con un fuerte enfoque en la experiencia del desarrollador y del usuario, presentando una interfaz (UI) de usuario moderna. Intenta ofrecer una solución IAM completa, pero con un énfasis en la facilidad de uso, configuración simplificada y una UI más amigable tanto para administradores como para usuarios finales.

  • Funcionalidades:
    • Soporte a OIDC, OAuth 2.0, SAML.
    • Gestión de usuarios, organizaciones, aplicaciones.
    • Inicio de sesión social.
    • MFA.
    • Extensibilidad a través de "providers" y "models".
    • Tiene un enfoque en ser "cas" (Central Authentication Service), de ahí el nombre.

Casdoor es una alternativa prometedora e interesante a Keycloak, pero ¿es el momento? Casdoor es uno para observar, pues puede convertirse en un competidor más fuerte a medida que madure.

  1. Madurez y Comunidad: Mucho más nuevo. Aunque el desarrollo es activo y la comunidad está creciendo, aún no se compara en tamaño, madurez y cantidad de recursos disponibles con Keycloak. Esto puede significar menos soluciones listas para problemas específicos y una base de conocimiento menor.

  2. Lenguaje y Recursos:

    • Keycloak: Java (JVM). Puede ser más intensivo en recursos (memoria, CPU) especialmente en el inicio, aunque Keycloak.X (Quarkus) ha mejorado esto significativamente.
    • Casdoor: Go. Generalmente, las aplicaciones en Go son conocidas por ser más ligeras en recursos y tener tiempos de inicio más rápidos. Esto puede ser una ventaja en entornos con restricciones de recursos o para escalabilidad más eficiente en ciertos escenarios.
  3. Interfaz de Usuario (UI) y Experiencia del Usuario (UX):

    • Keycloak: La UI de Keycloak es funcional y poderosa, pero a veces criticada por no ser la más moderna o intuitiva, especialmente para administradores menos técnicos. La personalización de la UI del usuario final se hace mediante temas.
    • Casdoor: Este es uno de los principales atractivos de Casdoor. Su UI es frecuentemente elogiada por ser más moderna, limpia y fácil de usar, tanto para administradores como para los flujos de usuario final (inicio de sesión, registro).
  4. Facilidad de Configuración y Uso Inicial:

    • Keycloak: Puede tener una curva de aprendizaje para explorar todas sus funcionalidades avanzadas. La configuración inicial para casos simples es relativamente directa.
    • Casdoor: Busca simplificar la configuración y el proceso de "empezar a usar", con un enfoque más amigable para desarrolladores que tal vez no sean expertos profundos en IAM.
  5. Conjunto de Funcionalidades y Extensibilidad:

    • Keycloak: Posee un conjunto de funcionalidades de IAM extremadamente amplio, cubriendo casi todos los escenarios imaginables. Su extensibilidad mediante SPIs es muy poderosa.
    • Casdoor: Ofrece las funcionalidades esenciales de IAM, pero puede no tener la misma profundidad o amplitud de funcionalidades avanzadas o de nicho que Keycloak ha acumulado a lo largo de los años. Su extensibilidad está en desarrollo.
  6. Ecosistema e Integraciones:

    • Keycloak: Se beneficia de un vasto ecosistema de integraciones, adaptadores para diversos lenguajes y frameworks, y soporte de terceros.
    • Casdoor: Por ser más nuevo, su ecosistema de integraciones y herramientas de soporte aún está en construcción.

Soluciones de Identidad como Servicio (IDaaS - Cloud-Based):

Auth0 (ahora parte de Okta):

CIAM (Customer Identity and Access Management), con un énfasis gigantesco en la experiencia del desarrollador (DX), facilidad de integración y flexibilidad a través de "Rules" y "Actions" (código JavaScript personalizado que se ejecuta en la plataforma). Integras tus aplicaciones con Auth0 usando SDKs y APIs. La autenticación y la gestión de usuarios suceden en los servidores de Auth0.

  • Facilidad de Uso e Integración Rápida: SDKs excelentes para diversos lenguajes y frameworks, documentación abundante y orientada a desarrolladores. Es muy rápido poner en funcionamiento.
  • "Actions" (anteriormente "Rules" y "Hooks"): Permiten personalizar extensivamente los flujos de autenticación y registro con código JavaScript directamente en la plataforma, sin necesidad de modificar el "core" de la aplicación. Esto es extremadamente poderoso para lógicas de negocio específicas.
  • Login Universal: Una página de inicio de sesión centralizada y personalizable que puede integrarse fácilmente.
  • Login Social y Empresarial: Conectores listos para decenas de proveedores sociales (Google, Facebook, etc.) y empresariales (SAML, ADFS, etc.).
  • Seguridad y Escalabilidad Gestionadas: No te preocupas por la infraestructura, parches de seguridad, escalabilidad – Auth0 se encarga de eso.
  • Recursos Avanzados de CIAM: Detección de brechas de contraseña, MFA adaptativo, gestión de consentimiento.

¿Qué haría Auth0 que Keycloak no hace (o hace con más esfuerzo)?

  1. Rapidez Extrema para Comenzar e Integrar: La experiencia "out-of-the-box" de Auth0, con SDKs y documentación enfocada en el desarrollador, es imbatible para prototipado rápido y lanzamiento de productos.
  2. Personalización de Flujos con JavaScript ("Actions"): La capacidad de inyectar lógica JavaScript personalizada en los flujos de autenticación de forma tan simple y poderosa es un gran diferencial. En Keycloak, personalizaciones similares requerirían escribir e implementar SPIs en Java, lo que es más complejo.
  3. Infraestructura Gestionada: No preocuparse por la escalabilidad, disponibilidad y seguridad de la infraestructura de identidad es una ventaja enorme para muchos equipos, permitiendo que se enfoquen en su producto principal.
  4. Funcionalidades de CIAM Avanzadas "Listas para Usar": Cosas como detección de contraseñas comprometidas, MFA adaptativo y análisis de seguridad se ofrecen como parte del servicio. En Keycloak, algunas de estas requerirían personalización o integración con herramientas externas.

Cuándo elegir Auth0:

  • Cuando no tienes tiempo.
  • Cuando no tienes equipo de seguridad.
  • El coste de la suscripción encaja en tu presupuesto y modelo de negocio (especialmente para CIAM, donde el coste por usuario puede ser bajo).
  • Cuando quieres externalizar la responsabilidad por los datos de los usuarios. Aquí tal vez pueda ser uno de los factores que más pese para la mayoría de las empresas.

Cuándo elegir Keycloak:

  • Control total sobre los datos de los usuarios y la infraestructura es un requisito no negociable** (regulaciones, políticas de seguridad).
  • El coste es una gran preocupación** y tienes la capacidad de gestionar la infraestructura (el software Keycloak es gratuito).
  • Necesitas una solución IAM que pueda ejecutarse en entornos offline o "air-gapped".
  • Necesitas personalizaciones muy profundas en el core de la plataforma que solo son posibles con acceso al código fuente y SPIs.
  • Evitar "vendor lock-in" es una prioridad alta.

Vale la pena recordar que el enfoque de Auth0 no es workforce, aunque también es posible utilizarlo, pero para eso tenemos OKTA.

Okta:

Okta ya tiene todo su diferencial basado en el workforce y por eso compró Auth0 para resolver sus carencias con CIAM. Para workforce hoy es el líder de mercado y punto final.

  • Puntos Fuertes:
    • Catálogo de Integraciones Imbatible: Miles de conectores preconstruidos para aplicaciones SaaS populares (Office 365, Salesforce, G Suite, Slack, Zoom, Workday, etc.) y soporte a estándares como SAML, OIDC, SCIM.
    • Single Sign-On (SSO) Robusto: Experiencia de SSO fluida para usuarios finales.
    • Gestión del Ciclo de Vida de la Identidad (LCM): Automatiza el aprovisionamiento y desaprovisionamiento de usuarios en aplicaciones conectadas, generalmente integrado con sistemas de RRHH.
    • Autenticación Multifactor (MFA) Avanzada: Diversas opciones de MFA, incluyendo Okta Verify (push), WebAuthn, y políticas de MFA adaptativas.
    • Universal Directory: Un directorio en la nube flexible para gestionar usuarios y grupos.
    • Okta Workflows: Automatización de procesos de identidad y TI sin código o con poco código.
    • Seguridad y Conformidad: Fuerte enfoque en seguridad, informes de auditoría, y ayuda a las empresas a cumplir con requisitos de conformidad.
    • Facilidad de Administración (para TI): Interfaz de administración poderosa y relativamente intuitiva para gestionar un gran número de usuarios y aplicaciones.

¿Qué haría Okta (Workforce) que Keycloak no hace (o hace con mucho más esfuerzo)?

  1. Amplia Gama de Integraciones Listas para Aplicaciones SaaS Corporativas: Este es el mayor diferencial. Configurar SSO y aprovisionamiento para cientos de apps como Salesforce, Workday, Office 365 es significativamente más simple y rápido con el catálogo de Okta. En Keycloak, puedes necesitar configurar SAML/OIDC manualmente para cada uno o depender de conectores de la comunidad, si existen.
  2. Gestión del Ciclo de Vida de la Identidad (LCM) Profundamente Integrada: La capacidad de Okta de integrarse con sistemas de RRHH (como Workday) para automatizar el "joiner-mover-leaver" (entrada, movimiento y salida de empleados) de forma robusta es una gran ventaja para empresas.
  3. Okta Workflows para Automatización: Una herramienta poderosa para crear automatizaciones complejas de procesos de identidad y TI sin necesidad de escribir mucho código. Keycloak requeriría desarrollo personalizado para funcionalidades equivalentes.
  4. Enfoque y Recursos Especializados en Workforce IAM: La plataforma Okta fue construida desde cero con las necesidades de Workforce IAM en mente, incluyendo informes de conformidad, políticas de seguridad granulares para acceso corporativo, etc.
  5. Menor Sobrecarga de Gestión de Infraestructura para TI: Para el departamento de TI, no tener que preocuparse por el mantenimiento, parcheo y escalabilidad de la plataforma de identidad es un gran alivio, pero pagas por ello.

Cuándo elegir Okta (Workforce):

  • Tu principal necesidad es gestionar el acceso de empleados a un gran número de aplicaciones SaaS e internas.
  • Automatizar el ciclo de vida de la identidad (aprovisionamiento/desaprovisionamiento) integrado con sistemas de RRHH es crucial.
  • Necesitas un catálogo extenso de integraciones listas para ahorrar tiempo y esfuerzo.
  • La empresa prefiere un modelo SaaS para reducir la carga de gestión de infraestructura y está dispuesta a pagar por la suscripción.
  • Seguridad y conformidad para acceso de empleados son prioridades máximas.

Cuándo elegir Keycloak:

  • Necesitas una solución tanto para CIAM como para Workforce IAM y quieres una plataforma unificada bajo tu control.
  • La necesidad de integraciones con aplicaciones SaaS no es tan vasta, o tienes capacidad para configurar SAML/OIDC manualmente.
  • Evitar "vendor lock-in" y tener la flexibilidad del código abierto son importantes.

La mayoría de las empresas en las que he trabajado usan Okta, por increíble que parezca, principalmente por el factor mencionado arriba sobre RRHH. En un entorno donde los cambios de personal son constantes, la necesidad de mantener y adaptar esas integraciones personalizadas podría convertirse en una carga considerable.

Existen otras soluciones como por ejemplo OneLogin, Azure AD, etc.

Azure Active Directory B2C (Azure AD B2C), Amazon Cognito y Google Cloud Identity Platform (Firebase Authentication)

Todos estos están enfocados en CIAM y no en workforce. Todos están bien integrados principalmente con los recursos de sus propias nubes. El control de todos ellos es a través de la consola de sus respectivas nubes.

  • Son servicios gestionados por los respectivos proveedores de nube (Microsoft, AWS, Google). No gestionas la infraestructura, escalabilidad, parches de seguridad del servicio de identidad en sí.
  • Enfoque Principal en CIAM y fueron diseñados primariamente para gestionar la identidad de clientes/usuarios finales de tus aplicaciones web y móviles.
  • Modelo de coste generalmente basados en el número de Usuarios Activos Mensuales (MAUs) y, a veces, en el uso de funcionalidades premium (como MFA avanzado).
  • Se integran nativa y profundamente con otros servicios dentro de sus respectivos ecosistemas de nube (Azure, AWS, Google Cloud/Firebase). Keycloak: Puede alojarse en cualquier nube, pero la integración con servicios específicos de la nube no es tan "nativa" y lista como en los servicios de la propia nube.

En varios casos, las empresas prefieren enfocar el workforce con OKTA y utilizar CIAM de sus respectivas nubes. El problema viene cuando tenemos más de una nube y el CIAM tiene que dar cuenta de todo.


Al elegir un competidor, considera:

  • Coste: Código abierto (coste de infraestructura y mantenimiento) vs. SaaS (coste de suscripción).
  • Autoalojamiento vs. Nube: ¿Quieres/puedes gestionar la infraestructura?
  • Escalabilidad: Tus necesidades actuales y futuras.
  • Curva de aprendizaje y complejidad: ¿Qué tan rápido necesitas implementar?
  • Recursos específicos: Soporte a SAML, OpenID Connect, federación, inicio de sesión social, MFA, políticas de autorización granulares, etc.
  • Comunidad y Soporte: Disponibilidad de documentación, foros, soporte de pago.
  • Integraciones: Con tus sistemas legacy u otros servicios.

Keycloak continúa siendo una excelente elección, especialmente si necesitas una solución de código abierto, autoalojada y rica en funcionalidades. ¡Pero el mercado ofrece alternativas interesantes dependiendo de tus prioridades!

Keycloak es una verdadera navaja suiza, pues cubre tanto CIAM como workforce IAM en una única solución madura. Estudiar Keycloak, incluso sin implementarlo, aporta un conocimiento valioso — incluso para evaluar si vale la pena pagar por soluciones SaaS.