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