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

RBAC против RBAC96

RBAC и RBAC96

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

Касбин RBAC поддерживает почти все возможности RBAC96, и добавляет вышеперечисленные возможности.

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

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

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

    В Касбине и Пользователь, и роль рассматриваются как строки. Если вы написали файл политики следующим образом:

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

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

    e.GetAllSubjects()

    затем вы получите возвратное значение ниже:

    [alice]

    Потому что в Касбин субъекты включали пользователей и роли.

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

    e.GetAllRoles()

    затем вы получите возвратное значение ниже:

    [admin]

    И теперь вы знаете, существует различие между Пользователями и Ролями в Касбине, но не так остро, как в RBAC96. Конечно, вы можете добавить некоторые префиксы к вашим политикам, таким как пользователь::alice, роль::admin для уточнения их отношений.

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

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

    Тем не менее, в Касбине мы рассматриваем разрешения как строки. В этом случае вы можете создать несколько разрешений лучше для вас.

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

    В Касбине, вы можете делать разрешения по доменам. Благодаря этому модель управления доступом стала более гибкой.