Конфигурирование доступных атрибутов#

Хранимые атрибуты#

Необходимо в разделе «Источники данных» перейти в блок «Хранимые атрибуты» и выполнить следующие шаги:

  • добавить новый атрибут, нажав на ссылку «+Добавить атрибут»;

  • указать наименование атрибута, которое будет использоваться в Blitz Identity Provider. Наименование атрибута может отличаться от его имени во внешнем хранилище – в таком случае необходимо указать правило преобразования в настройках этого хранилища (см. Подключение хранилища по LDAP);

  • указать тип значения данных – формат данных (String, Number, Boolean, Bytes, Array of Strings);

  • определить параметры атрибута:

    • возможно ли производить по нему поиск (колонка «Поиск»);

      Совет

      Если это атрибут из подключенного хранилища, то в целях производительности рекомендуется создать по нему поисковый индекс.

    • является ли атрибут обязательным (колонка «Обяз»);

    • должно ли значение атрибута быть уникальным в системе (колонка «Уник»).

После добавления атрибута недопустимо менять его имя. При необходимости переименования атрибута следует удалить атрибут и создать новый.

Важно

В разделе «Пользователи» в карточке пользователя (см. Просмотр и изменение атрибутов пользователя) атрибуты будут показываться в том порядке, в котором они созданы. Через консоль управления изменить порядок атрибутов нельзя. При необходимости изменить порядок атрибутов необходимо вручную их переупорядочить в конфигурационном файле blitz.conf в секции настроек blitz.prod.local.idp.id-attrs.Чтобы в разделе «Пользователи» вместо системных имен атрибутов показывались их текстовые названия с учетом языка интерфейса пользователя, необходимо для созданных атрибутов определить в messages (см. Текстовые сообщения веб-интерфейса) строки с описанием названий атрибутов для используемых языков. Строки должны иметь вид custom.user.attr.name.<имя атрибута>.

При создании нового атрибута автоматически также создается маппинг нового атрибута во всех подключенных хранилищах атрибутов на атрибут с таким же названием. После создания новых атрибутов необходимо проверить и отредактировать настройки маппинга в подключенных хранилищах. Если атрибут не предполагается считывать из хранилища, то нужно удалить строку маппинга – в таком случае атрибут будет вестись в базе данных Blitz Identity Provider.

Важно

Если в качестве СУБД используется PostgreSQL, то необходимо создать столбец в таблице USR_ATR, а также в таблице USR (только в случае, если используется внутреннее хранилище). Имя столбца должно соответствовать имени добавляемого атрибута с нормализацией из lowerCamelCase в UPPERCASE_SEPARATED_BY_UNDERSCORE, например, middleName -> MIDDLE_NAME. Тип столбца должен быть выбран в зависимости от типа значения атрибута:

  • столбец с типом text для атрибутов с типом String и Bytes (в этом случае значение будет сохранено в Base64);

  • столбец с типом text[] для атрибута с типом Array of strings;

  • столбец с подходящим числовым типом (bigint, integer, smallint) для атрибутов с типом Number;

  • столбец с типом bool для атрибута с типом Boolean.

stored_attrs

Предусмотрена возможность назначить для атрибута LDAP-каталога транслятор, осуществляющий преобразование атрибута из хранимого в LDAP формата в требуемый формат в Blitz Identity Provider. Например, это может быть полезно при необходимости обрабатывать в Blitz Identity Provider атрибут objectGUID из LDAP-каталога Active Directory, чтобы этот атрибут представлялся не в байтовом виде, а в форме строки GUID. Настройка выполняется через конфигурационный файл, см. Транслятор атрибута.

Вычисляемые атрибуты#

Для настройки вычисляемых атрибутов в блоке «Вычисляемые атрибуты» необходимо совершить следующие действия:

  • добавить новый атрибут, нажав на ссылку «+Добавить атрибут»;

  • указать наименование вычисляемого атрибута;

  • указать тип значения данных – формат данных;

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

Примеры правил:

  • чтобы создать атрибут «Имя и фамилия» из хранимых атрибутов family_name и given_name необходимо определить хранимые атрибуты family_name и given_name, а далее задать вычисляемый атрибут full_name с правилом вычисления – ${family_name} ${given_name}.

  • чтобы создать атрибут «домен электронной почты» из хранимого атрибута email необходимо определить хранимый атрибут email, а далее задать вычисляемый атрибут domain и определить его правило вычисления ${email##*@}.

Примечание

Справку по поддерживаемым параметрам строк подстановки можно посмотреть здесь.

:size=80%

Правила преобразования входных значений#

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

Пример решаемых задач:

  • для проверки, что атрибут email содержит знак @, необходимо указать выражение декомпозиции ^(.+)@(.+)$ и выражение компоновки ${0-};

  • для проверки формата мобильного телефона (phone_number) и сохранения его в формате +7(999)1234567, необходимо указать выражение декомпозиции ^(\+?)([78]?) ?\(?([0-9]{3})\)? ?([0-9]{3})[- ]?([0-9]{2})[- ]?([0-9]{2})$ и выражение компоновки +7(${3-})${4-}${5-}${6-}.

:size=80%

Пример настройки правил преобразования входных значений

Правила преобразования выходных значений#

Эти правила позволяют совершить дополнительные преобразования с вычисляемыми атрибутами. Например, из атрибута с массивом групп пользователей могут быть извлечены только необходимые группы, либо значения групп из формата CN=name,DC=… должны быть преобразованы просто к именам CN. Примеры настроек таких правил преобразования представлены на рисунке ниже (предварительно необходимо создать соответствующие вычисляемые атрибуты, см. Вычисляемые атрибуты).

output_val

Пример настройки правил преобразования выходных значений

Настройка назначения атрибутов#

Необходимо указать, какой атрибут будет идентификатором в системе. Идентификатор должен быть уникальным и не меняться со временем.

Примечание

Не рекомендуется в будущем менять базовый идентификатор, т.к. к нему привязываются все пользовательские настройки. При изменении базового идентификатора будут потеряны настройки двухфакторной аутентификации, зарегистрированные события безопасности, запомненные списки устройств пользователей, связи с внешними учетными записями, хранимые в базе данных Blitz Identity Provider атрибуты пользователей.

Также можно указать, какие атрибуты используются для специальных целей:

  1. Атрибут, используемый в качестве признака блокировки учетной записи. Этот атрибут должен иметь тип значения Boolean. Blitz Identity Provider поддерживает блокировку пользователей, хранимых в LDAP-каталоге. Для использования этой функции также требуется настроить соответствующий атрибут в настройках LDAP-каталога (см. Подключение хранилища по LDAP).

  2. Выражение, определяющее имя пользователя в консоли. Например, выражение ${family_name} ${given_name} ${middle_name-} позволяет отображать у учетной записи (например, в разделе «Пользователи») фамилию, имя и отчество (если есть).

  3. Атрибуты, используемые для хранения адресов электронной почты.

  4. Атрибуты, используемые для хранения номером мобильных телефонов.

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

attrs

Конфигурирование назначения атрибутов