ABAC управление доступом?
ABAC управление доступом?
Ищу любые примеры практической реализации контроля доступа по атрибутам, под yii2 вообще будет шикарно
Re: ABAC управление доступом?
Нашел модуль для zend, с хорошим описанием принципа работы, работает ок.
Я так понял, что для yii всех устраивают стандартный RBAC. Но подойдет ли RBAC, например, для корпоративного сайта, где структура организации и бизнес-правила заранее не известны и настраиваются админом? Или при каждом изменении придется привлекать программиста, чтобы он захардкодил permissions и т.д.?
Я так понял, что для yii всех устраивают стандартный RBAC. Но подойдет ли RBAC, например, для корпоративного сайта, где структура организации и бизнес-правила заранее не известны и настраиваются админом? Или при каждом изменении придется привлекать программиста, чтобы он захардкодил permissions и т.д.?
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: ABAC управление доступом?
Почему захардкодил? Есть же API для работы, можно сделать админку.
Нравится Yii? Давайте сделаем его лучше!.
Re: ABAC управление доступом?
Мы сделали это так:arser писал(а):Нашел модуль для zend, с хорошим описанием принципа работы, работает ок.
Я так понял, что для yii всех устраивают стандартный RBAC. Но подойдет ли RBAC, например, для корпоративного сайта, где структура организации и бизнес-правила заранее не известны и настраиваются админом? Или при каждом изменении придется привлекать программиста, чтобы он захардкодил permissions и т.д.?
1. уровень РБАК - роли - по сути должностные обязанности в компании
2. группы (таски) - группы пермишионов, например "доступ к пользователям"
3. пермишионы - непосредственно route до action. "module/controller/action"
Вроде норм. При добавлении экшена в коде он сам добавляется в таблицу прав доступа.
Сам код парсится и считываются все экшены и создаются для них роуты, которые по сути пермишионы
Ну и полная админка редактирования ролей, групп.
Сами пермишионы не редактируемы, они польностью синхронизируются со структурой кода проекта.
Re: ABAC управление доступом?
А если понадобится "только бухгалтер может видеть поле зарплата", как будете действовать?
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: ABAC управление доступом?
Сделать пермишн canViewSalary и кинуть на роль бухгалтер. Везде, где ЗП выводится, добавить проверку.
Нравится Yii? Давайте сделаем его лучше!.
Re: ABAC управление доступом?
В нашем случае, создается таск canViewSalary. И отображение зарплаты оборачивается в проверку $user->can('canViewSalary').
Для удобства можно сделать виджет.
Для любителей чтоб везде и всегда никто не мог просто так это поле вывести, можно добавить проверку в afterFind модели например..
Вариантов множество.
Для удобства можно сделать виджет.
Для любителей чтоб везде и всегда никто не мог просто так это поле вывести, можно добавить проверку в afterFind модели например..
Вариантов множество.
Re: ABAC управление доступом?
Спасибо за ответы, пошел делать.
Re: ABAC управление доступом?
RBAC не решает проблему доступа к конкретной сущности.
Например имеются много проектов и у проектов имеются много статей, и нужно организовать доступ к определенным статьям проектам по определенным Permissions, т.е. один и тот же пользователь в одном проекте имеет набор Permissions, а в другом проекте совсем другой набор, условно в одном проекте Редактор статей, в другом Автор статей.
ABAC позволяет гибко это настраивать.
Вот реализация ABAC плохо освещена.
Может есть другие решения которые позволяют решить задачу разграничения доступа на уровне сущностей?
Например имеются много проектов и у проектов имеются много статей, и нужно организовать доступ к определенным статьям проектам по определенным Permissions, т.е. один и тот же пользователь в одном проекте имеет набор Permissions, а в другом проекте совсем другой набор, условно в одном проекте Редактор статей, в другом Автор статей.
ABAC позволяет гибко это настраивать.
Вот реализация ABAC плохо освещена.
Может есть другие решения которые позволяют решить задачу разграничения доступа на уровне сущностей?
Re: ABAC управление доступом?
Пермишены - это не то что один раз задается консольным скриптом или миграцией.
Их можно и на лету добавлять.
Добавил статью и добавляешь пермишены по работе с этой статьей.
Yii2 universal module sceleton - for basic and advanced templates