Basándome en la actividad en GitHub, la frecuencia de actualización y el modelo de implementación, he enumerado las 8 mejores herramientas RBAC de código abierto que ayudan a las organizaciones a restringir el acceso al sistema otorgando permisos y privilegios a los usuarios.
Esta lista incluye 8 herramientas RBAC de código abierto divididas en tres categorías: bibliotecas de autorización de propósito general y plataformas de identidad con soporte RBAC , y herramientas de permisos específicas para Kubernetes.
Herramientas RBAC de código abierto basadas en estrellas de GitHub
Selección y clasificación de herramientas:
- Número de reseñas: más de 300 estrellas en GitHub.
- Lanzamiento de actualización: Se lanzó al menos una actualización la semana pasada.
- Clasificación: Los proveedores se clasifican según su puntuación en GitHub (con estrellas) en orden descendente.
Casdoor
Casdoor es una plataforma de administración de identidades y accesos (IAM) que administra la autenticación y el control de acceso basado en roles (RBAC) a través de una interfaz web, compatible con OAuth 2.0, Workspace, Active Directory y Kerberos.
Figura 1: Ilustración de la autenticación mediante comunicación
Fuente: Casdoor 1
Se asignan roles y permisos a objetos integrados, como aplicaciones, o a comportamientos de acceso personalizados; los administradores estructuran los grupos y los grupos virtuales para reflejar la jerarquía de autoridad de la organización.
La principal diferencia con otras herramientas de esta lista radica en la compatibilidad con múltiples protocolos en una sola implementación: Casdoor puede conectar entornos Active Directory heredados con aplicaciones OAuth 2.0 modernas sin necesidad de una capa de adaptador adicional. La configuración se realiza mediante interfaz gráfica de usuario, en lugar de archivos, lo que limita la integración con GitOps en comparación con herramientas como Cerbos o Casbin. Los equipos que requieren gestión programática de políticas mediante control de versiones encontrarán en el enfoque web de Casdoor una limitación.
Ciudadela
ZITADEL es una plataforma de infraestructura de identidad de código abierto centrada en la multitenencia B2B: cada organización cliente gestiona de forma independiente su propio grupo de usuarios, roles y conjunto de permisos.
Protocolos compatibles:
- OpenID Connect
- OAuth 2.x
- SAML 2
Vídeo 1: Consola de administrador de Zitadel
Fuente: Zitadel 2
Enfoque de implementación
Los administradores integran el paquete RBAC y asignan roles de autorización desde la consola de ZITADEL. Los permisos se asignan a través de API.
Tipos de roles:
- Puestos específicos para cada aplicación (administración, contabilidad, empleados, recursos humanos)
- Roles de administrador específicos de ZITADEL (ORG_OWNER, IAM_OWNER)
Ejemplo: Credenciales del gerente de recursos humanos David Wallace que muestran la búsqueda de subvenciones para la gestión.
Figura 2: Búsqueda de subvenciones de gestión en Zitadel
Fuente: Zitadel 3
¿Quién lo utiliza? Organizaciones que gestionan portales de clientes B2B que requieren arquitectura multiusuario con inicio de sesión seguro y autoservicio.
Ventaja: Combina la gestión de identidades con el control de acceso basado en roles (RBAC) en una única plataforma. Reduce la proliferación de herramientas.
Cerbos
Cerbos es una capa de autenticación que permite a los usuarios definir reglas de control de acceso para los recursos de la aplicación.
Capacidades:
- Colabora con tus compañeros de equipo para crear y compartir políticas en entornos privados.
- Implementar actualizaciones de políticas de seguridad de red en toda la flota de protocolos de datos de paquetes (PDP).
- Cree paquetes de políticas personalizadas para la autorización del lado del cliente o en el navegador.
Figura 3: Cómo se integra Cerbos con su aplicación
Fuente: Cerbos 4
Permiso – Opal
OPAL (Open Policy Administration Layer) es una capa administrativa para Open Policy Agent (OPA) que detecta cambios en las políticas y los datos en tiempo real y aplica actualizaciones en vivo a las instancias de OPA implementadas sin necesidad de reiniciarlas. Los administradores actualizan los atributos de rol de usuario; estos atributos se transfieren a la base de datos de backend y se ponen a disposición del motor de decisiones de OPA. La función permit.check() evalúa el nivel de acceso de un usuario en función de la política vigente.
Vídeo: Comprobaciones de permisos de usuario en la interfaz de usuario con Opal
Fuente: Permit.io 5
Requisito técnico: Requiere la implementación de OPA. OPA es una capa administrativa, no una solución independiente.
Fairwinds – Gerente de RBAC
Fairwinds RBAC Manager automatiza la vinculación de roles entre espacios de nombres de Kubernetes. En lugar de crear RoleBindings individuales en cada espacio de nombres para un usuario que necesita acceso entre espacios de nombres, RBAC Manager gestiona esas vinculaciones desde una única configuración declarativa.
Ejemplo básico
El usuario Joe necesita acceso de edición al espacio de nombres "web". El Administrador de RBAC crea asignaciones de roles que permiten el acceso de edición al espacio de nombres web.
Figura 4: Vinculación de roles con Fairwinds – Gestor RBAC
Fuente: Fairwinds 6
Esta herramienta opera en la capa del clúster de Kubernetes y no afecta las decisiones de autorización a nivel de aplicación. Su valor reside en reducir la desviación de la configuración en entornos donde, de otro modo, se tendrían que gestionar manualmente cientos de combinaciones de espacio de nombres y usuario.
OpenFGA
OpenFGA es un motor de autorización de código abierto basado en el Control de Acceso Basado en Relaciones (ReBAC), inspirado en el sistema de autorización interno Zanzibar de Google. En lugar de asignar permisos directamente a los roles, OpenFGA modela el acceso a través de relaciones entre usuarios y objetos.
Con OpenFGA, los administradores pueden:
- Escriba un modelo de autorización
- Escribir tuplas de relación
- Realizar comprobaciones de autorización
- Agregue la autenticación a su servidor OpenFGA.
Por ejemplo, para comprobar si el usuario “user:anne”, de tipo usuario, tiene una relación de “lector” con el objeto “document:2021-budget”, los administradores pueden escribir tuplas para probar las API.
Por lo tanto, la consulta en la figura siempre devolverá { “allowed”: true } si el usuario establece que “document:2021-budget#reader” tiene la relación “reader” con “document:2021-budget”.
Figura 5: Consulta con tuplas contextuales
Fuente: OpenFGA 7
Red Casbin
Casbin es una biblioteca de autorización disponible para Go, Java, Node.js, Python, .NET, Rust, PHP y Elixir. Admite ACL, RBAC y ABAC mediante una definición de modelo basada en un archivo de configuración: el modelo de control de acceso se expresa en un archivo CONF utilizando el metamodelo PERM (Política, Efecto, Solicitud, Coincidencias), y el cambio de modelo solo requiere una modificación de la configuración, sin necesidad de modificar el código de la aplicación.
Para RBAC, Casbin almacena asignaciones de roles de usuario y admite jerarquías de roles con profundidad configurable (máximo predeterminado: 10 niveles). La API de RBAC proporciona una interfaz de alto nivel para operaciones comunes; para reglas basadas en atributos, las condiciones se pueden evaluar directamente en la expresión del comparador en función de las propiedades del recurso o del usuario.
Figura 6: Creación de una lista de control de acceso (ACL) basada en roles con Casbin
Fuente: Casbin 8
Lo que significa:
- Alice puede leer datos1
- Bob puede escribir datos2
¿Por qué debería su organización utilizar herramientas RBAC?
Las estadísticas de seguridad de red muestran que más de 6 millones de registros de datos quedaron expuestos a nivel mundial debido a filtraciones de datos en el primer trimestre de 2023. Implementar lógica convencional basada en roles es un método eficaz para controlar el acceso no autorizado de los usuarios a los recursos vitales de la empresa; sin embargo, gestionar manualmente cientos de sentencias condicionales puede llevar mucho tiempo.
Los equipos de seguridad pueden mejorar sus estrategias de protección integrando herramientas centralizadas de control de acceso basado en roles (RBAC) de código abierto con sistemas de gestión de identidades y accesos (IAM). Esto garantiza que solo los usuarios autorizados puedan acceder a recursos confidenciales, lo que mejora la gobernanza del acceso.
Además, mediante la implementación de la microsegmentación , se pueden aplicar políticas de seguridad en zonas de red aisladas, lo que restringe aún más el acceso y minimiza la superficie de ataque. Este enfoque por capas refuerza la seguridad al combinar permisos de usuario granulares con límites de red estrictamente controlados.
Ventajas de las herramientas RBAC de código abierto
Las herramientas RBAC de código abierto permiten a los usuarios:
- Interactúa con otros desarrolladores para informar y hacer un seguimiento de los errores y las solicitudes de nuevas funciones con transparencia.
- Siga la última versión de desarrollo y vea cómo avanza el proceso.
- Corrige errores e implementa nuevas funciones si sabes programar.
- Evite los pagos iniciales, las cuotas de suscripción y la dependencia de un proveedor.
Cómo seleccionar herramientas RBAC de código abierto
Aquí hay algunas recomendaciones a tener en cuenta al seleccionar una herramienta RBAC de código abierto:
- Comprueba la popularidad de la herramienta: El número de colaboradores y miembros de la comunidad de GitHub que responden a las consultas de los usuarios refleja la popularidad de las tecnologías de código abierto. Cuanto mayor sea la comunidad, mayor será el apoyo que tu organización podrá obtener.
- Verifique las características de la herramienta: La mayoría de las herramientas RBAC de código abierto ofrecen personalización de roles, registro de permisos y métodos de inicio de sesión. Sin embargo, si su organización prevé utilizar la herramienta RBAC para diversos fines, debería buscar un producto más completo. Por ejemplo, una organización que busca una gestión de acceso automatizada podría considerar una solución con funciones de gestión de identidades y accesos (IAM).
- Comparación de soluciones de código cerrado : Las soluciones de código abierto suelen incluir funciones limitadas o adicionales. Implementar una solución más personalizada que ofrezca un mayor nivel de funcionalidades (por ejemplo, segmentación en la nube) puede ser más eficiente para su organización. A continuación, encontrará una lista de herramientas de microsegmentación de código cerrado con funciones RBAC.
Sé el primero en comentar
Tu dirección de correo electrónico no será publicada. Todos los campos son obligatorios.