Конфигурирование доступных атрибутов#
Хранимые атрибуты#
Необходимо в разделе Источники данных перейти в блок Хранимые атрибуты и выполнить следующие шаги:
добавить новый атрибут, нажав на ссылку
+Добавить атрибут;указать наименование атрибута, которое будет использоваться в Blitz Identity Provider. Наименование атрибута может отличаться от его имени во внешнем хранилище – в таком случае необходимо указать правило преобразования в настройках этого хранилища;
указать тип значения данных – формат данных (
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.

Предусмотрена возможность назначить для атрибута 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##*@}.
Примечание
Справку по поддерживаемым параметрам строк подстановки можно посмотреть здесь.

Правила преобразования входных значений#
Правила преобразования входных значений позволяют проверять корректность формата ввода данных и обеспечивают сохранение данных в корректном формате. Правила задаются с помощью регулярных выражений. Каждое правило включает в себя регулярное выражение, позволяющее провести декомпозицию (разбиения на части) введенного значения, и правило сохранения полученных частей (компоновка).
Пример решаемых задач:
для проверки, что атрибут
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-}.

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

Настройка назначения атрибутов#
Необходимо указать, какой атрибут будет идентификатором в системе. Идентификатор должен быть уникальным и не меняться со временем.
Примечание
Не рекомендуется в будущем менять базовый идентификатор, т.к. к нему привязываются все пользовательские настройки. При изменении базового идентификатора будут потеряны настройки двухфакторной аутентификации, зарегистрированные события безопасности, запомненные списки устройств пользователей, связи с внешними учетными записями, хранимые в базе данных Blitz Identity Provider атрибуты пользователей.
Также можно указать, какие атрибуты используются для специальных целей:
Атрибут, используемый в качестве признака блокировки учетной записи. Этот атрибут должен иметь тип значения
Boolean. Blitz Identity Provider поддерживает блокировку пользователей, хранимых в LDAP-каталоге. Для использования этой функции также требуется настроить соответствующий атрибут в настройках LDAP-каталога.Выражение, определяющее имя пользователя в консоли. Например, выражение
${family_name} ${given_name} ${middle_name-}позволяет отображать у учетной записи (например, в разделе Пользователи) фамилию, имя и отчество (если есть).Атрибуты, используемые для хранения адресов электронной почты.
Атрибуты, используемые для хранения номером мобильных телефонов.
В качестве электронной почты и мобильного телефона могут быть указаны несколько атрибутов (например, для личного и рабочего адреса электронной почты).
