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

Поддерживаемые модели

Casbin поддерживает следующие модели и паттерны контроля доступа. Если вы не уверены, какая из них вам нужна, начните с Выбор модели контроля доступа.

  1. ACL (Access Control List)
  2. ACL с суперпользователем
  3. ACL без пользователей — Для систем без аутентификации или идентификации пользователей (например, доступ только через API или к устройствам).
  4. ACL без ресурсов — Когда разрешения применяются к типам ресурсов, а не к конкретным экземплярам (например, «write-article», «read-log»).
  5. RBAC (Role-Based Access Control)
  6. RBAC с ролями ресурсов — И пользователи, и ресурсы могут иметь роли (или членство в группах).
  7. RBAC с доменами/тенантами — Пользователи могут иметь разные роли в разных доменах или тенантах.
  8. ABAC (Attribute-Based Access Control) — Использует атрибуты (например, resource.Owner) в правилах.
  9. PBAC (Policy-Based Access Control) — Авторизация управляется политиками на основе правил для динамических решений, учитывающих контекст.
  10. BLP (Bell–LaPadula) — Формальная модель с метками безопасности и уровнями допуска.
  11. Biba — Модель целостности, ограничивающая поток информации для предотвращения несанкционированных изменений.
  12. LBAC (Lattice-Based Access Control) — Комбинирует конфиденциальность и целостность в решётчатом фреймворке.
  13. OrBAC (Organisation-Based Access Control) — RBAC, расширенный слоями абстракции для политик в организациях с несколькими подразделениями.
  14. UCON (Usage Control) — Охватывает непрерывную авторизацию, изменяемые атрибуты, обязательства и условия.
  15. RESTful — Шаблоны путей (например, /res/*, /res/:id) и HTTP-методы (GET, POST, PUT, DELETE).
  16. Совпадение по IP — Совпадение по IP-адресу или CIDR для сетевого контроля.
  17. Deny-override — Политики allow и deny; deny имеет приоритет над allow.
  18. Priority — Правила политик упорядочены (например, как правила межсетевого экрана); первое совпадение имеет приоритет.

Примеры​

ModelФайл моделиФайл политики
ACLbasic_model.confbasic_policy.csv
ACL с суперпользователемbasic_with_root_model.confbasic_policy.csv
ACL без пользователейbasic_without_users_model.confbasic_without_users_policy.csv
ACL без ресурсовbasic_without_resources_model.confbasic_without_resources_policy.csv
RBACrbac_model.confrbac_policy.csv
RBAC с ролями ресурсовrbac_with_resource_roles_model.confrbac_with_resource_roles_policy.csv
RBAC с доменами/тенантамиrbac_with_domains_model.confrbac_with_domains_policy.csv
ReBACrebac_model.confrebac_policy.csv
ABACabac_model.confН/Д
BLPblp_model.confН/Д
Bibabiba_model.confН/Д
LBAClbac_model.confН/Д
OrBACorbac_model.conforbac_policy.csv
Совпадение по IPipmatch_model.confipmatch_policy.csv
RESTfulkeymatch_model.confkeymatch_policy.csv
Deny-overriderbac_with_not_deny_model.confrbac_with_deny_policy.csv
Allow-and-denyrbac_with_deny_model.confrbac_with_deny_policy.csv
Prioritypriority_model.confpriority_policy.csv
Явный приоритетpriority_model_explicitpriority_policy_explicit.csv
Subject-Prioritysubject_priority_model.confsubject_priority_policyl.csv

Comments are powered by giscus and GitHub Discussions. They load from giscus.app and GitHub only after you click the button below.