Настройки маппинга JWT-токена на объект «Subject» для проверки прав доступа

Структура данных пользователя, по которому проверяются права доступа, представлена на рисунке.

Описание атрибутов пользователя представлено в таблице.

Описание атрибутов пользователя

Атрибут Тип атрибута Описание атрибута Настройка маппинга по умолчанию key=value
id String Идентификатор пользователя docshouse.accessrights.subject.mapping.id = $.sub
enabled boolean Признак активности docshouse.accessrights.subject.mapping.enabled = $.enabled
login String Логин пользователя docshouse.accessrights.subject.mapping.login = $.preferred_username
email String Email пользователя docshouse.accessrights.subject.mapping.email = $.email
firstName String Имя docshouse.accessrights.subject.mapping.firstName = $.given_name
lastName String Фамилия docshouse.accessrights.subject.mapping.lastName = $.family_name
attributes Map{String, Object} Дополнительные атрибуты docshouse.accessrights.subject.mapping.attributes = $.attributes
roles List{String} Список ролей docshouse.accessrights.subject.mapping.groups = $.groups
groups List{String} Список групп docshouse.accessrights.subject.mapping.roles = $.realm_access.roles

В Системе предусмотрены отдельные настройки маппинга полей JWT-токена на объект вида «Subject».

Данные настройки реализованы для обеспечения дополнительной гибкости маппинга данных, получаемых из JWT-токена на пользователя, используемого в Системе для проверки прав доступа при отсутствии возможности влиять на структуру JWT-токена.

Настройки можно переопределять с использованием сервиса конфигураций (dh-configurations-service).

Настройки можно явно задать в файле «application.yaml»:

docshouse:

 accessrights:

  \# необязательные параметры для маппинга claim'ов из JWT в Subject

  subject:

   mapping:

    \# <имя поля в Subject>: <JSONPath JWT>

    id: $.sub

    login: $.preferred_username

    enabled: $.enabled

    email: $.email

    firstName: $.given_name

    lastName: $.family_name

    roles: $.realm_access.roles

    groups: $.groups

    attributes:

     - $.attributes

     - $.first_some_attr

     - $.second_some_attr