Ir al contenido principal

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 RBACNivel de SoporteDescripción
RBAC0Totalmente SoportadoRBAC0 es la versión básica de RBAC96. Clarifica la relación entre Usuarios, Roles y Permisos.
RBAC1Totalmente SoportadoRBAC1 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.
RBAC2Manejo 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.
RBAC3Manejo 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

  1. 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, admin

    Si 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 y role::admin para aclarar sus relaciones.

  2. 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.

  3. 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.