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