Какую роль выбрать для пользователя

В RBAC пользователь может иметь несколько ролей. Скажем, пользователь по имени Абэ является частью пары ролей, водителя и механика. Абэ хочет проверить, нуждается ли грузовик в замене масла (операция, которую может выполнять только механика)

Вариант A) Когда Abe входит в приложение (мобильное приложение или веб-страница), бэкэнд аутентифицирует Abe и определяет, что у него две роли. Приложение итеративно проверяет каждую из ролей и видит, какая роль имеет разрешение на выполнение этой операции.

Вариант Б) Когда Абэ входит в приложение (мобильное приложение или веб-страница), он выбирает вместе с ним Роль. А бэкэнд аутентифицирует Abe и использует роль, отправленную Abe, чтобы проверить, есть ли у него разрешение на эту операцию.

Или есть лучший способ выбрать роль для действия, выполняемого пользователем?

Благодарю.

1 ответ

С точки зрения UX, вариант A лучше. Если Эйбу приходится выполнять множество задач, ему, возможно, придется выходить из системы и входить в нее несколько раз под разными ролями, увеличивая свою когнитивную нагрузку и потенциально задерживая выполнение своей задачи.

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

Я лично выбрал бы вариант А по этим причинам.

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