Платформа 3V/Права доступа/Работа с ролями в Keycloak
Роль определяет тип или категорию пользователя. Admin, user, manager - все это типичные роли, которые могут быть в проекте. В приложениях чаще назначают доступ конкретным ролям, а не отдельным пользователям, поскольку работа с пользователями может быть сложной для управления.
Содержание
Создание новой роли
Список всех ролей можно увидеть в пункте меню "Roles" в блоке "Configure". Чтобы добавить новую роль следует нажать на кнопку "Add Role".
На странице создания новой роли заполняем обязательное поле Role Name. Важно! После сохранения, данное поле нельзя будет изменить.
При необходимости добавляем описание роли и нажимаем кнопку "Save".
После сохранения отобразятся дополнительные вкладки с настройками, которые можно задать, при необходимости:
Настройка атрибутов, вкладка "Attributes" - Настройка пользовательского атрибута в Keycloak
Список и настройка пользователей роли - вкладка "Users in Role"
Назначение ролей пользователю
Управление ролями пользователей осуществляется на вкладке "Role Mappings" в разделе настройки пользователей "User" для каждого отдельного клиента. Для того чтобы добавить роль пользователь нужно выбрать пункт меню "Users" в блоке "Manage" и в списке найти нужного пользователя, которому необходимо добавить роль. Далее на вкладке "Role Mappings" в разделе "Available Roles" выбрать роль которую требуется добавить пользователю и нажать кнопку "Add selected". После назначения роли разработчика вы увидите, что роль сотрудника, связанная с составом разработчиков, отображается в разделе «Действующие роли». Действующие роли - это все роли, которые явно назначаются пользователю, а также любые роли, унаследованные от композитов.
Роли по умолчанию
Роли по умолчанию позволяют автоматически назначать сопоставления ролей пользователей, когда любой пользователь создается или импортируется с помощью Identity Brokering. Чтобы указать роли по умолчанию, перейдите в пункт меню «Роли» слева и щелкните вкладку «Роли по умолчанию» или, в качестве альтернативы, вы можете выполнить поиск ролей по умолчанию - роль $ {realmName} на вкладке «Роли области» и затем нажать «Изменить». Обратите внимание, что роль default-roles - $ {realmName} не может быть удалена, потому что она служит контейнером для ролей по умолчанию как области, так и клиента.
Составные роли
Любую роль на уровне области или клиента можно превратить в составную роль. Составная роль - это роль, с которой связаны одна или несколько дополнительных ролей. Когда составная роль сопоставлена пользователю, пользователь также получает роли, связанные с этой составной ролью. Это наследование является рекурсивным, поэтому любой состав композитов также наследуется. Чтобы превратить обычную роль в составную роль, перейдите на страницу сведений о роли и включите переключатель «Составная роль». После того, как вы переместите этот переключатель, пользовательский интерфейс выбора ролей будет отображаться ниже на странице, и вы сможете связать роли уровня области и уровня клиента с создаваемой вами композицией. В этом примере роль уровня области «служащий» была связана с составной ролью разработчика. Любой пользователь с ролью разработчика теперь также унаследует роль сотрудника.