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