Casbin

Casbin

  • Документ
  • API
  • Редактор
  • Плагины IDE
  • Single Sign-On (SSO)
  • Форум
  • Справка
  • Блог
  • Pricing
  • Contact Sales
  • Languages iconРусский
    • English
    • 中文
    • 한국어
    • Français
    • Deutsch
    • 日本語
    • Помочь перевести
  • GitHub

›Модель

Основы

  • Общий обзор
  • Начать работу
  • Как это работает
  • Уроки

Модель

  • Поддерживаемые модели
  • Синтаксис для моделей
  • Эффект
  • Функция
  • RBAC
  • RBAC with Pattern
  • RBAC с доменами
  • Casbin RBAC v.s. RBAC96
  • АДАТ
  • Приоритетная модель
  • Супер админ

Хранилище

  • Модель хранилища
  • Хранилище политики
  • Загрузка подмножества политик

Расширения

  • Enforcers
  • Адаптеры
  • Наблюдатели
  • Диспетчеры
  • Менеджеры ролей
  • Посредники
  • GraphQL Middlewares
  • Облачные Посредники

API

  • Обзор API
  • API управления
  • RBAC API
  • RBAC с доменным API
  • RoleManager API
  • Права доступа к данным

Расширенное использование

  • Многопоточность
  • Benchmarks
  • Оптимизация производительности
  • Авторизация Кубернетов
  • Авторизация служебной ячейки через посланника

Управление

  • Администратор портала
  • Служба Касбина
  • Обработка журнала и ошибок
  • Использование интерфейса

Редактор

  • Онлайн-редактор
  • Плагины IDE

Ещё

  • Наши усыновители
  • Вклад
  • Политика конфиденциальности
  • Условия предоставления услуг
Translate

Приоритетная модель

Касбин поддерживает загрузку политики с приоритетом.

Загрузить политику с приоритетным неявкой

Это довольно просто, порядок определяет приоритет, политика появилась раньше, имеет более высокий приоритет.

модель.conf:

[policy_effect]
e = priority(p.eft) || Отклонить

Загрузить политику с приоритетом

Также посмотрите: casbin#550

Имя маркера приоритета в определении политики должно быть «приоритет», а меньшее значение приоритета будет иметь более высокий приоритет. Если в приоритете присутствует нечисловой символ, то он будет в последнем, а не бросать ошибку. Теперь явный приоритет только поддерживает AddPolicy & AddPolicies, если было вызвано UpdatePolicy , вы не должны изменять атрибут приоритета.

модель.conf:

[request_definition]
r = под, obj, действовать

[policy_definition]
p = приоритет, sub, obj, act, eft

[role_definition]
g = _, _

[policy_effect]
e = priority(стр. ft) || Отрицать

[matchers]
м = g(r.sub, p. ub) && r.obj == p.obj && r.act == p.act

политика.csv

p, 10, data1_deny_group, data1, read, deny
p, 10, data1_deny_group, data1, write, deny
p, 10, data2_allow_group, data2, read, allow
p, 10, data2_allow_group, data2, write, разрешить


p, 1, alice, data1, write, allow
p, 1, alice, data1, read, allow
p, 1, bob, data2, read, deny

g, bob, data2_allow_group
g, alice, data1_deny_group

запрос:

alice, data1, write --> true // for `p, 1, alice, data1, write, allow` имеет приоритет
bob, data2, read --> false
bob, data2, напишите --> true // для bob имеет роль `data2_allow_group`, который имеет право записать data2, и не существует политики отрицания с более высоким приоритетом 

Загрузить политику с приоритетом на основе роли и иерархии пользователей

Унаследованная структура ролей и пользователей может быть только несколькими деревьями, а не графиками. Если у одного пользователя несколько ролей, вы должны убедиться, что у пользователя одинаковый уровень в разных деревьях. Если две роли имеют один и тот же уровень, то политика (соответствующая роль) появилась раньше, имеет более высокий приоритет. подробности также см. casbin#833casbin#831

модель.conf:

[request_definition]
r = sub, obj, действовать

[policy_definition]
p = sub, obj, act, eft

[role_definition]
g = _, _

[policy_effect]
e = subjectPriority(стр. ft) || Отрицать

[matchers]
м = g(r.sub, p. ub) && r.obj == p.obj && r.act == p.act 

политика.csv

p, root, data1, read, deny
p, admin, data1, read, deny

p, editor, data1, read, deny
p, subscriber, data1, read, deny

p, jane, data1, read, разрешить
p, alice, data1, read, allow

g, admin, root

g, редактор, admin
g, подписчик, администратор

g, jane, редактор
g, alice, подписчик 

Запрос:

jane, data1, read --> true // jane is at the bottom,so priority is higher than editor, admin and root
alice, data1, read --> true

Роль иерархии вроде этого:

роль: корень
 <unk> -роль: администратор
    <unk> -редактор ролей
    <unk> <unk> -<unk> -пользователь: jane
    <unk>
    <unk> -роль: подписчик
       <unk> -пользователь: john

Приоритет автоматически выглядит так:

роль: корень # приоритет: 30
 <unk> - роль: admin # auto приоритет: 20
     <unk> -роль: редактор # auto приоритет: 10
     <unk> -роль: подписка # auto приоритет: 10
← АДАТСупер админ →
  • Загрузить политику с приоритетным неявкой
  • Загрузить политику с приоритетом
  • Загрузить политику с приоритетом на основе роли и иерархии пользователей
Casbin
Docs
Getting StartedManagement APIRBAC APIMiddlewares
Community
Who's using Casbin?Stack Overflow
Casbin          jCasbin
Node-Casbin   PHP-CasbinPyCasbin          Casbin.NETCasbin-CPP        Casbin-RS
Follow @casbinHQ
Copyright © 2022 Casbin Organization