Перейти к основному контенту

Casbin RBAC vs. RBAC96

Casbin RBAC и RBAC96

В этом документе мы сравним Casbin RBAC с RBAC96.

Casbin RBAC поддерживает почти все функции RBAC96 и добавляет новые функции поверх них.

Версия RBACУровень поддержкиОписание
RBAC0Полностью поддерживаетсяRBAC0 - это базовая версия RBAC96. Он уточняет отношения между пользователями, ролями и разрешениями.
RBAC1Полностью поддерживаетсяRBAC1 добавляет иерархии ролей поверх RBAC0. Это означает, что если у alice есть role1, у role1 есть role2, то у alice также будет role2 и она унаследует его разрешения.
RBAC2Поддерживается обработка взаимоисключающихся (вот так)RBAC2 добавляет ограничения на RBAC0. Это позволяет RBAC2 обрабатывать взаимоисключающие политики. Однако количественные ограничения не поддерживаются.
RBAC3Поддерживается обработка взаимоисключающихся (вот так)RBAC3 - это комбинация RBAC1 и RBAC2. Он поддерживает иерархии ролей и ограничения, найденные в RBAC1 и RBAC2. Однако количественные ограничения не поддерживаются.

Разница между Casbin RBAC и RBAC96

  1. В Casbin различие между пользователем и ролью не так ясно, как в RBAC96.

    В Casbin и пользователь, и роль рассматриваются как строки. Например, рассмотрим следующий файл политики:

    p, admin, book, read
    p, alice, book, read
    g, amber, admin

    Если вы вызовете метод GetAllSubjects() с использованием экземпляра Casbin Enforcer:

    e.GetAllSubjects()

    возвращаемое значение будет:

    [admin alice]

    Это потому, что в Casbin субъекты включают как пользователей, так и роли.

    Однако, если вы вызовете метод GetAllRoles():

    e.GetAllRoles()

    возвращаемое значение будет:

    [admin]

    Из этого вы можете видеть, что в Casbin есть различие между пользователями и ролями, но оно не такое резкое, как в RBAC96. Конечно, вы можете добавить префикс к своим политикам, например user::alice и role::admin, чтобы уточнить их отношения.

  2. Casbin RBAC предоставляет больше разрешений, чем RBAC96.

    RBAC96 определяет только 7 разрешений: чтение, запись, добавление, выполнение, кредит, дебет и запрос.

    Однако, в Casbin мы рассматриваем разрешения как строки. Это позволяет вам создавать разрешения, которые лучше подходят для ваших потребностей.

  3. Casbin RBAC поддерживает домены.

    В Casbin вы можете выполнять авторизацию на основе доменов. Эта функция делает вашу модель контроля доступа более гибкой.