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