Контроль доступа (Access Control List)
Как это работает?
В php-casbin модель контроля доступа абстрагируется в файл CONF на основе метамодели PERM (политика, эффект, запрос, сопоставители). Таким образом, переключение или обновление механизма авторизации для проекта — это просто изменение конфигурации. Вы можете настроить собственную модель контроля доступа, комбинируя доступные модели. Например, вы можете объединить роли RBAC и атрибуты ABAC в одной модели и использовать один набор правил политики.
Самая базовая и простая модель в php-casbin — это ACL. Модель CONF ACL:
# Определение запроса
[request_definition]
r = sub, obj, act
# Определение политики
[policy_definition]
p = sub, obj, act
# Эффект политики
[policy_effect]
e = some(where (p.eft == allow))
# Сопоставители
[matchers]
m = r.sub == p.sub && r.obj == p.obj && r.act == p.act
Пример политики для модели ACL выглядит так:
p, alice, data1, read
p, bob, data2, write
Это означает:
Функции
Что делает php-casbin:
Чего php-casbin не делает:
Документация https://casbin.org/docs/en/overview
Онлайн-редактор
Вы также можете использовать онлайн-редактор (http://casbin.org/editor/), чтобы написать свою модель и политику php-casbin в веб-браузере. Он предоставляет такие функции, как подсветка синтаксиса и автозаполнение, как IDE для языка программирования.
Учебники
https://casbin.org/docs/tutorials
Управление политиками
php-casbin предоставляет два набора API для управления разрешениями:
Модель редактора
Редактор политик
https://casbin.org/docs/en/adapters
https://casbin.org/docs/en/role-managers
Модель | Файл модели | Файл политики |
---|---|---|
ACL | basic_model.conf | basic_policy.csv |
ACL с суперпользователем | basic_model_with_root.conf | basic_policy.csv |
ACL без пользователей | basic_without_users_model.conf | basic_without_users_policy.csv |
ACL без ресурсов | basic_without_resources_model.conf | basic_without_resources_policy.csv |
RBAC | rbac_model.conf | rbac_policy.csv |
RBAC с ролями ресурсов | rbac_with_resource_roles_model.conf | rbac_with_resource_roles_policy.csv |
RBAC с доменами/арендаторами | rbac_with_domains_model.conf | rbac_with_domains_policy.csv |
ABAC | abac_model.conf | N/A |
RESTful | keymatch_model.conf | keymatch_policy.csv |
Запрет-переопределение | rbac_with_deny_model.conf | rbac_with_deny_policy.csv |
Приоритет | priority_model.conf | priority_policy.csv |
Промежуточное ПО Authz для веб-фреймворков: https://casbin.org/docs/middlewares
https://casbin.org/docs/adopters
Этот проект существует благодаря всем людям, которые вносят свой вклад.
Спасибо всем нашим поддержавшим! 🙏 [Станьте поддержавшим]
Поддержите этот проект, став спонсором. Ваш логотип будет отображаться здесь со ссылкой на ваш веб-сайт. [Стать спонсором]
Этот проект лицензирован в соответствии с лицензией Apache 2.0.
Если у вас есть какие-либо проблемы или пожелания, пожалуйста, свяжитесь с нами. PR приветствуется.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )