Команды в модели контроля доступа на основе ролей
Нам нужно изменить модель RBAC существующего приложения, чтобы представить концепцию команд. В настоящее время у нас есть возможность создавать новые роли на основе набора разрешений и назначать пользователям несколько ролей. Идея команды состоит в том, чтобы иметь иерархию в соответствии с ролями. Скажем, у нас есть четыре роли:
- инвестор
- Менеджер
- Руководитель группы
- инженер
Команда может иметь любое количество пользователей из всех этих ролей. Таким образом, может быть 2 инвестора, 4 менеджера, 2 руководителя группы и 6 инженеров. Мы должны управлять нашей бизнес-логикой в соответствии с ролями в команде.
Насколько я понимаю, это требует от нас определения количества ролей, потому что, если мы не знаем, какие роли создают пользователи, мы не сможем запустить желаемую бизнес-логику в командах. Тем не менее, я чувствую, что ограничение ролей и применение проверок авторизации на основе ролей не является хорошим подходом. Что бы лучше подходить в этом сценарии?
1 ответ
Похоже, ваш самый низкий общий знаменатель - это разрешение. Так что я бы пошел по разрешениям. Разрешить / запретить / ограничить на основе разрешений. Роль будет иметь одно-много разрешений. Пользователь в зависимости от вашей модели может иметь одну или несколько ролей. А команды это просто метки.