Какую роль выбрать для пользователя
В RBAC пользователь может иметь несколько ролей. Скажем, пользователь по имени Абэ является частью пары ролей, водителя и механика. Абэ хочет проверить, нуждается ли грузовик в замене масла (операция, которую может выполнять только механика)
Вариант A) Когда Abe входит в приложение (мобильное приложение или веб-страница), бэкэнд аутентифицирует Abe и определяет, что у него две роли. Приложение итеративно проверяет каждую из ролей и видит, какая роль имеет разрешение на выполнение этой операции.
Вариант Б) Когда Абэ входит в приложение (мобильное приложение или веб-страница), он выбирает вместе с ним Роль. А бэкэнд аутентифицирует Abe и использует роль, отправленную Abe, чтобы проверить, есть ли у него разрешение на эту операцию.
Или есть лучший способ выбрать роль для действия, выполняемого пользователем?
Благодарю.
1 ответ
С точки зрения UX, вариант A лучше. Если Эйбу приходится выполнять множество задач, ему, возможно, придется выходить из системы и входить в нее несколько раз под разными ролями, увеличивая свою когнитивную нагрузку и потенциально задерживая выполнение своей задачи.
С точки зрения разработки, вариант B может быть немного проще, если по единственной причине, по которой вы должны выполнять отслеживание прав пользователей, чуть более сложным способом на бэкэнде, но я бы в значительной степени счел это незначительным.
Я лично выбрал бы вариант А по этим причинам.