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

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

  1. У 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, щоб уточнити їх відносини.

  2. Casbin RBAC надає більше дозволів, ніж RBAC96.

    RBAC96 визначає лише 7 дозволів: читання, запис, додавання, виконання, кредитування, дебетування та запит.

    Однак, у Casbin ми розглядаємо дозволи як рядки. Це дозволяє вам створювати дозволи, які краще відповідають вашим потребам.

  3. Casbin RBAC підтримує домени.

    У Casbin ви можете виконувати авторизацію на основі доменів. Ця функція робить вашу модель контролю доступу більш гнучкою.