En un mundo digital cada vez más interconectado, la seguridad de la identidad y el acceso se ha convertido en una prioridad fundamental para empresas y desarrolladores. La gestión eficaz de la identidad y el acceso (IAM) no solo garantiza la protección de los datos confidenciales, sino que también facilita una experiencia de usuario fluida y segura. Si bien existen numerosas soluciones comerciales en el mercado, el código abierto ha emergido como una opción atractiva para aquellos que buscan flexibilidad, transparencia y control sobre sus sistemas de IAM.
Es por ello que te invito a explorar 5 alternativas de IAM de código abierto que ofrecen una gama de características y funcionalidades para satisfacer las necesidades de diferentes proyectos y organizaciones. Desde plataformas centradas en la autenticación hasta soluciones especializadas en control de acceso y gestión de usuarios, estas opciones proporcionan una base sólida para construir entornos seguros y confiables.
Ory
Ory es uno de los sistemas Headless más conocidos en la industria. Mantiene un software de seguridad avanzado open source que resuelve la autenticación, autorización, control de acceso, seguridad de la red de aplicaciones y delegación. Ory Kratos es un repositorio de código abierto similar a Auth0. Se centra en el sistema de identidad, gestión de usuarios y autenticación en cloud.
Las principales características de Ory son:
- Flujos de registro, inicio de sesión y administración de cuentas para claves de acceso, autenticación biométrica, inicio de sesión social, SSO y autenticación multifactor
- Páginas y componentes prediseñados de inicio de sesión, registro y administración de cuentas
- Proveedor de OAuth2 y OpenID Connect para inicio de sesión único, acceso API y autorización de máquina a máquina.
- Comprobaciones de permisos de baja latencia basadas en el modelo Zanzíbar de Google y con soporte integrado para el lenguaje de permisos Ory.
Hanko
Hanko es un proyecto elegante centrado en una solución de gestión de usuarios y autenticación open source. Su enfoque se centra en llevar el inicio de sesión más allá de las contraseñas. Las claves de acceso son el futuro, y esto quedó bien descrito por Google en The beginning of the end of the password.
Dado que las claves de acceso se anunciaron hace muy poco, el ecosistema de dispositivos, navegadores y sistemas operativos se está preparando para ir más allá en el uso de contraseñas.
Hanko se ha estado preparando para este cambio y, actualmente, ofrece:
- Rápida integración con los componentes web de Hanko Elements (cuadro de inicio de sesión y perfil de usuario)
- API-first
- Disponibilidad para self-hosting y en Hanko Cloud.
La forma más sencilla de empezar con Hank es con Docker-Compose:
- Clona este repositorio:git clone https://github.com/teamhanko/hanko.git
- En la carpeta hanko recién creada, ejecuta:docker compose -f deploy/docker-compose/quickstart.yaml -p "hanko-quickstart" up --build
- Una vez que los servicios se estén ejecutando, la página de inicio de sesión se puede ver en localhost:8888. Para recibir correos electrónicos sin tu propio servidor SMTP, Hanko agregó mailslurper, que estará disponible en localhost:8080.
Cerbos
Cerbos es una capa de autorización. Te permite definir reglas de control de acceso contextuales para los recursos de tu aplicación con políticas en formato YAML, que se administran e implementan a través de su infraestructura Git-ops.
Con Cerbos podrás:
- Definir la lógica de autorización en un IDE colaborativo y un entorno de pruebas.
- Colabora con colegas para crear y compartir políticas en áreas de test privadas.
- Implemente con una canalización de CI/CD totalmente self-hosted
- Cree paquetes de políticas especiales para autorización del lado del cliente o en el navegador
Así es como funciona Cerbos con su aplicación (también puede encontrar una explicación más avanzada aquí): 👇
Para probar Cerbos, puedes comenzar con el tutorial de Cerbforce.
Zitadel
Zitadel es una herramienta de gestión de usuarios open source que se configura rápidamente, así como sistemas de pago como Auth0. Zitadel está diseñado teniendo en mente una compleja arquitectura multi-tenant y proporciona soluciones para gestionar clientes y socios B2B.
Zitadel está construido teniendo en cuenta la siguiente estructura:
- Enfoque basado en API-first
- Autenticación multi-tenant y gestión de acceso
- Log sólido de auditoría debido al abastecimiento de eventos como patrón de almacenamiento
- Acciones para reaccionar ante eventos con código personalizado
- Autoservicio para usuarios finales, clientes comerciales y administradores
- CockroachDB o una base de datos Postgres como opción de almacenamiento
Puedes comenzar consultando su guía aquí.
SuperTokens
SuperTokens es otra solución de autenticación open source. Las principales características que podrás encontrar en la plataforma son las siguientes:
- Varios tipos de inicio de sesión: Correo electrónico/contraseña, Sin contraseña (basado en OTP o Magic Link), Social/OAuth 2.0
- Control de acceso
- Gestión de sesiones
- Gestión de usuarios
- Self-hosted o administrada por SuperToken
Su arquitectura es única porque su capa API de backend se ubicaría en el medio de tu front-end y los SuperTokens. Esto permite personalizar fácilmente la lógica de autenticación y permite una solución de sesión segura.
Para comenzar con SuperTokens, puedes utilizar su guía práctica para elegir el tipo de inicio de sesión que desees y comenzar aquí .
Conclusión
Existen muchas opciones interesantes open-source para el servicio de gestión de identidad y acceso IAM. Si tu objetivo es tener un sistema self-hosted, tendrás que evaluar muy bien los posibles riesgos, ya que este sistema será la piedra angular para el acceso a tus servicios. Debes analizar cada alternativa y determinar qué servicio se adapta mejor a tus necesidades actuales y futuras.
Referencias: