RBAC с несколькими параллельными экземплярами

Концепция RBAC работает очень хорошо, если вы думаете о своей системе как об одном маленьком блоке. Но я не могу понять, что делать, когда ваша система на самом деле представляет собой набор маленьких блоков.

Давайте начнем с примера: скажем, мы хотим создать систему RBAC для управления разрешениями в ресторане.

  • Менеджер может разблокировать управляющий офис и ресторан, а также взять и снять наличные деньги в кассе.
  • Сотрудник может только открыть главные двери ресторана и положить деньги в кассу.

Теперь мои две роли довольно ясны, и все замечательно. Но что, если моя система фактически управляет сетью ресторанов? Как я могу помешать Энтони, управляющему рестораном в Остине, иметь права управляющего в ресторане Брайана в Беркли?

Я вижу только 2 решения:

  1. Создание ролей для ресторанов: AustinManager и BerkeleyManager. Это также подразумевает, что ресурсы зависят от ресторана, и в итоге мы получаем решение для снежного кома, в котором мы управляем тысячами товаров.
  2. Каким-то образом включите информацию о ресторане вместе с ролью в процессе проверки полномочий. Делает все это проще в управлении, чем решение 1), но похоже на возвращение к старой доброй системе разрешений на основе групп.

Так что было бы хорошим решением RBAC для решения этой проблемы?

0 ответов

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