В рекомендациях по безопасности указывается, что при возникновении конфликта возникает отказ.
При этом, исходя из практического опыта, я строю безопасность следующим образом (когда речь идет о RBAC):
У каждого пользователя есть набор прав;права пользователя заменяют права группы. Каждый пользователь может иметь одно или несколько прав группы. Каждая группа имеет приоритетный уровень приложения;как правило, администратор применяется там, где последнее примененное право. Я очень редко применяю несколько групп для нескольких людей;и большинство людей, которые имеют права применять права, не могут сделать это, за исключением основного администратора (вместо этого я создаю новую группу).Я использую Negative (группы с правами Deny) ОЧЕНЬ экономно.После применения групповых прав к человеку, я провожу проверку системы на наличие конфликтов и уведомляю человека, который его применяет.В дополнение к стандартным ролям RBAC у меня также есть флаг предоставления просмотра другим, предоставления редактирования другим и т. Д.
Кроме того, используйте множество других механизмов, таких как токен сеанса sha256, используйте таблицы базы данных для временной проверки на бездействиесеансы + повторные атаки, требуют, чтобы IP-адрес пользователя оставался постоянным и т. д.