Какая разница между группами и ролями?

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

Можете ли вы дать хороший пример, где нужны роли и группы?

Ответ 1

Лицо - Группа - Роли

  • Человек является членом одной или нескольких групп.
  • Группе назначено несколько ролей.

Пример:

  • Две роли существуют в системе stock_purchaser, timecard_supervisor.
  • Две группы существуют в системе shift_supervisor, region_manager.
  • региональный_manager имеет роль stock_purchaser и timecard_supervisor.
  • shift_supervisor имеет роль timecard_supervisor.

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

Ответ 2

Роли являются наборами прав

Группы - это группы людей

Представьте, что у вас есть две группы людей (G1, G2) с использованием приложения (A1), для которого у вас есть два типа пользователей: администраторы и пользователи только для чтения.

Вы можете создать роль администратора в A1, определить его права и дать G1 эту роль Если G2 также нуждается в этих правах, вам не нужно предоставлять их по одному, вы можете просто дать G2 ту же роль, которую вы создали для G1

Ответ 3

Одним из важных недостатков во всех комментариях является тот факт, что вы можете назначать роли для отдельных пользователей, а не только для групп.

Вот пример использования: Профессор физики в университете имеет "классный тест" (ака справа или привилегия) для определенного курса или набора курсов. Тем не менее, он решает пойти на отпуск в течение года и хочет, чтобы другой инструктор (или, возможно, несколько инструкторов - группа), т.е. Его замена (замены), имел ту же роль (привилегии) ​​по одному и тому же набору курсов. Обратите внимание, что подставляющие инструкторы могут принадлежать к различным группам пользователей. Администратор может легко назначить эту роль отдельным пользователям или группам пользователей.  Конечно, после возвращения профессора, администратор может отменить эти роли (привилегии).

С точки зрения системы мы заботимся только о том, какие методы пользователю (или группе пользователей) разрешено выполнять. Перед выполнением ограниченного метода мы проверяем роли пользователей, вызывая другие методы, которые обычно возвращают логические значения.