Casbin RBAC v.s. RBAC96
RBAC и RBAC96
В этом документе мы сравним RBAC Casbin с RBAC96.
Касбин RBAC поддерживает почти все возможности RBAC96, и добавляет вышеперечисленные возможности.
Версия RBAC | Уровень поддержки | Описание |
---|---|---|
RBAC0 | полностью поддерживается | RBAC0 является основной версией RBAC96. Он уточнил отношения между Пользователями, Ролями и Разрешениями. |
RBAC1 | полностью поддерживается | RBAC1 добавил иерархии ролей в RBAC0, что означает, что alice имеет роль1 , роль1 имеет роль2 , затем alice также будет иметь роль2 и наследовать его права. |
RBAC2 | mutually exclusive handling is supported (like this), but quantitative limits are not | В RBAC2 добавлены ограничения на RBAC0. Поэтому RBAC2 может обрабатывать взаимоисключающие элементы, содержащиеся в политике. |
RBAC3 | mutually exclusive handling is supported (like this), but quantitative limits are not | RBAC3 представляет собой комбинацию RBAC1 и RBAC2. RBAC3 поддерживает ролевые иерархии и ограничения в RBAC1 и RBAC2. |
Разница между RBAC и RBAC96
В Касбине различие между пользователем и ролью не является четким
В Касбине и Пользователь, и роль рассматриваются как строки. Если вы написали файл политики следующим образом:
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
для уточнения их отношений.RBAC Casbin предоставляет больше разрешений, чем RBAC96
Только 7 разрешений определены в RBAC96: чтение, запись, добавление, выполнение, кредит, дебетование, запрос.
Тем не менее, в Касбине мы рассматриваем разрешения как строки. В этом случае вы можете создать несколько разрешений лучше для вас.
RBAC в Casbin поддерживает домены
В Касбине, вы можете делать разрешения по доменам. Благодаря этому модель управления доступом стала более гибкой.