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