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
В 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
, чтобы уточнить их отношения.Casbin RBAC предоставляет больше разрешений, чем RBAC96.
RBAC96 определяет только 7 разрешений: чтение, запись, добавление, выполнение, кредит, дебет и запрос.
Однако, в Casbin мы рассматриваем разрешения как строки. Это позволяет вам создавать разрешения, которые лучше подходят для ваших потребностей.
Casbin RBAC поддерживает домены.
В Casbin вы можете выполнять авторизацию на основе доменов. Эта функция делает вашу модель контроля доступа более гибкой.