Добавление сопоставлений#

При создании клиента можно добавить следующие встроенные сопоставления:

Название мэппера в KeyCloak.SE

Названия поля в токене

Название поля в профиле пользователя

Встроенные

full name

name

Имя + Фамилия

gender

gender

Атрибут gender

middle name

middle_name

Атрибут middleName

allowed web origins

allowed web origins

-

address

address

-

family name

family_name

Фамилия

profile

profile

Атрибут profile

picture

picture

Атрибут picture

Client IP Address

clientAddress

-

upn

upn

Имя пользователя

updated at

updated_at

Атрибут updatedAt

birthdate

birthdate

Атрибут birthdate

phone number verified

phone_number_verified

Атрибут phoneNumberVerified

zoneinfo

zoneinfo

Атрибут zoneinfo

website

website

Атрибут website

gss delegation credential

gss_delegation_credential

-

Impersonator Username

impersonator.username

-

username

preferred_username

Имя пользователя

nickname

nickname

Атрибут nickname

given name

given_name

Имя

Client ID

clientId

-

Client Host

clientHost

-

email verified

email_verified

Подтверждение E-mail

Impersonator User ID

impersonator.id

-

locale

locale

Язык

phone number

phone_number

Атрибут phoneNumber

email

email

Внутренний E-mail

audience resolve

audience resolve

-

groups

groups

-

client roles

resource_access

Роли интегрированных систем, назначенные пользователю

realm roles

realm_access

Роли реалма, назначенные пользователю

При создании клиента можно добавить следующие сопоставления:

Название мэппера в KeyCloak.SE

Названия поля в токене

Название поля в профиле пользователя

Claims parameter Token

Зависит от настройки mapper

Имя + Фамилия, Фамилия, Имя пользователя, Внутренний E-mail ("name", "given_name", "family_name", "preferred_username", "email")

User Realm Role

Зависит от настройки mapper

Пользовательские роли реалма

ESIA Info Mapper

Зависит от настройки mapper

Mapper for ESIA user info

User Session Note

Зависит от настройки mapper

Добавить user session note в SAML аттрибуты (для SAML протокола) либо добавить текущую user session note в поле токен

User Address

Зависит от настройки mapper

Добавить атрибуты отвечающие за адрес пользователя (street, locality, region, postal_code, и country) в поле OpenID Connect 'address'

Role Name Mapper

Зависит от настройки mapper

Задать существующей роли новое имя в токене

User Client Role

Зависит от настройки mapper

Клиентские роли пользователя

User Property

Зависит от настройки mapper

Имя свойства в интерфейсе UserModel.class. Для примера, значение 'email' будет ссылкой на метод ExtendedUserModel.getEmail()

Hardcoded Role

Зависит от настройки mapper

Вшитая роль в access_token

Hardcoded claim

Зависит от настройки mapper

Вшитое поле в токен

Pairwise subjeсt identifier

Зависит от настройки mapper

Вычисляет попарный идентификатор субъекта, используя хэш sha-256 с солью. Смотрите спецификацию OpenID Connect для получения дополнительной информации о попарных идентификаторах объектов

User's full name

Зависит от настройки mapper

Полное имя пользователя в поле 'name' OpenID Connect 'name'. Формат + ' ' +

Allowed Web Origins

Зависит от настройки mapper

Добавить все allowed web origins в 'allowed-origins' поле токена

Audience

Зависит от настройки mapper

Add specified audience to the audience (aud) field of token

*User Attribute

Зависит от настройки mapper

Атрибуты пользователя

Group Membership

Зависит от настройки mapper

Группы, которым принадлежит пользователь

Audience Resolve

Зависит от настройки mapper

Adds all client_ids of "allowed" clients to the audience conditions in the assertion. Allowed client means any SAML client for which user has at least one client role

Extended User Property

Зависит от настройки mapper

Имя свойства в интерфейсе ExtendedUserModel.class. Для примера, значение 'email' будет ссылкой на метод ExtendedUserModel.getEmail()

Script Mapper

Зависит от настройки mapper

JavaScript код, который возвращает значение поля

При создании IDP можно задать следующие сопоставления:

Название мэппера в KeyCloak.SE

Названия поля в токене

Название поля в профиле пользователя

Advanced Claim to Group

Зависит от настройки mapper

Если все поля существуют, то добавить пользователя в конкретную группу

Hardcoded User Session Attribute

Зависит от настройки mapper

Сохранить сессию пользователя, пришедшую от провайдера в конкретный user session атрибут

Attribute Importer

Зависит от настройки mapper

Импортировать информацию о профиле пользователя, если она существует в JSON данный поставщика социальных сетей, в заданный атрибут пользователя (для OpenID Connect) либо импортировать заданные saml атрибуте, если они заданы, в заданный атрибут пользователя или свойство.

External Role to Role

Зависит от настройки mapper

Сопоставить внешней роли конкретную роль клиента либо реалм

Advanced Claim to Role

Зависит от настройки mapper

Если все поля существуют, то добавить пользователю конкретную роль реалма либо клиента

Hardcoded Role

Зависит от настройки mapper

Вшить роль в конкретный атрибут access_token (для OpenID Connect) либо SAML ответ

Claim to Role

Зависит от настройки mapper

Если поле существует, то добавить пользователю конкретную роль реалма либо клиента

Hardcoded Attribute

Зависит от настройки mapper

Когда пользователь импортирует из провайдера, вшить данные в конкретный атрибут пользователя (для OpenID Connect) для либо в SAML ответ

Username Template Importer

Зависит от настройки mapper

Формат username для импорта

Extended Attribute Mapper (SberTech version)

Зависит от настройки mapper

Значение поля расширенного объекта пользователя (ExtendedUserModel.class). Например, middleName → вызовет метод ExtendedUserModel.getMiddleName(). active → вызовет метод ExtendedUserModel.isActive().

*Для передачи в токен массив атрибутов пользователя необходимо настроить созданный mapper c типом сопоставления User Attribute для OIDC клиента:

  1. Тип переменной JSON - String;

  2. Несколько значений - ВКЛ; Пример итоговой конфигурации:

На вкладке Атрибуты пользователя задать значение для атрибута. Для передачи массива значений в токен, необходимо использовать разделитель ##. При использовании этого разделителя, массив корректно формируется и в токене, в строке значений аттрибута, отображается через запятую (для примера: "test": ["test1","test2"]).