Команды в модели контроля доступа на основе ролей

Нам нужно изменить модель RBAC существующего приложения, чтобы представить концепцию команд. В настоящее время у нас есть возможность создавать новые роли на основе набора разрешений и назначать пользователям несколько ролей. Идея команды состоит в том, чтобы иметь иерархию в соответствии с ролями. Скажем, у нас есть четыре роли:

  1. инвестор
  2. Менеджер
  3. Руководитель группы
  4. инженер

Команда может иметь любое количество пользователей из всех этих ролей. Таким образом, может быть 2 инвестора, 4 менеджера, 2 руководителя группы и 6 инженеров. Мы должны управлять нашей бизнес-логикой в ​​соответствии с ролями в команде.

Насколько я понимаю, это требует от нас определения количества ролей, потому что, если мы не знаем, какие роли создают пользователи, мы не сможем запустить желаемую бизнес-логику в командах. Тем не менее, я чувствую, что ограничение ролей и применение проверок авторизации на основе ролей не является хорошим подходом. Что бы лучше подходить в этом сценарии?

1 ответ

Похоже, ваш самый низкий общий знаменатель - это разрешение. Так что я бы пошел по разрешениям. Разрешить / запретить / ограничить на основе разрешений. Роль будет иметь одно-много разрешений. Пользователь в зависимости от вашей модели может иметь одну или несколько ролей. А команды это просто метки.

Другие вопросы по тегам