Casbin RBAC vs. RBAC96
Casbin RBAC y RBAC96
En este documento, compararemos Casbin RBAC con RBAC96.
Casbin RBAC soporta casi todas las características de RBAC96 y añade nuevas características encima de eso.
Versión RBAC | Nivel de Soporte | Descripción |
---|---|---|
RBAC0 | Totalmente Soportado | RBAC0 es la versión básica de RBAC96. Clarifica la relación entre Usuarios, Roles y Permisos. |
RBAC1 | Totalmente Soportado | RBAC1 añade jerarquías de roles encima de RBAC0. Esto significa que si alice tiene role1 , role1 tiene role2 , entonces alice también tendrá role2 y heredará sus permisos. |
RBAC2 | Manejo de Exclusión Mutua Soportado (como esto) | RBAC2 añade restricciones sobre RBAC0. Esto permite a RBAC2 manejar políticas mutuamente excluyentes. Sin embargo, los límites cuantitativos no están soportados. |
RBAC3 | Manejo de Exclusión Mutua Soportado (como esto) | RBAC3 es una combinación de RBAC1 y RBAC2. Soporta jerarquías de roles y restricciones encontradas en RBAC1 y RBAC2. Sin embargo, los límites cuantitativos no están soportados. |
La diferencia entre Casbin RBAC y RBAC96
En Casbin, la distinción entre Usuario y Rol no es tan clara como en RBAC96.
En Casbin, tanto el Usuario como el Rol se tratan como cadenas de texto. Por ejemplo, considere el siguiente archivo de políticas:
p, admin, book, read
p, alice, book, read
g, amber, adminSi llama al método
GetAllSubjects()
usando una instancia del Enforcer de Casbin:e.GetAllSubjects()
el valor de retorno será:
[admin alice]
Esto se debe a que en Casbin, los sujetos incluyen tanto Usuarios como Roles.
Sin embargo, si llama al método
GetAllRoles()
:e.GetAllRoles()
el valor de retorno será:
[admin]
De esto, se puede ver que hay una distinción entre Usuarios y Roles en Casbin, pero no es tan marcada como en RBAC96. Por supuesto, puede agregar un prefijo a sus políticas como
user::alice
yrole::admin
para aclarar sus relaciones.Casbin RBAC proporciona más permisos que RBAC96.
RBAC96 define solo 7 permisos: leer, escribir, añadir, ejecutar, crédito, débito y consulta.
Sin embargo, en Casbin, tratamos los permisos como cadenas de texto. Esto le permite crear permisos que se adapten mejor a sus necesidades.
Casbin RBAC soporta dominios.
En Casbin, puede realizar autorizaciones basadas en dominios. Esta característica hace que su Modelo de Control de Acceso sea más flexible.