Настройка пользовательских сервисов#
Blitz Identity Provider предоставляет веб-приложения, с помощью которых пользователи самостоятельно могут выполнять ряд операций:
Веб-приложение «Личный кабинет». Позволяет выполнить ряд операций с учетной записью, например, посмотреть/изменить свои данные, настроить способы аутентификации, посмотреть последние события, сменить пароль. Если включен, то доступен по адресу:
https://{hostname}/blitz/profile
.Веб-приложение «Регистрация пользователей». При включении становится доступен переход со страницы входа на форму самостоятельной регистрации (ссылка «Нет аккаунта? Зарегистрироваться»).
Веб-приложение «Восстановление доступа». Позволяет пользователю сменить пароль от своей учетной записи после прохождения проверок. Если приложение включено, то пользователи смогут перейти со страницы входа (ссылка «Забыли пароль?») на форму восстановления доступа.
Настройка данных сервисов осуществляется в разделе «Сервисы самообслуживания» консоли управления.
Внимание
Администратор консоли управления должен самостоятельно проверять корректность помещаемых на страницу входа JS-скриптов и содержимое страниц регистрации и личного кабинета на предмет возможных уязвимостей.
Общие настройки#
На главной странице раздела «Сервисы самообслуживания» можно включить
или выключить соответствующие приложения (сервисы), используя
переключатель (). Следует при этом учесть, что
переключатель лишь влияет на отображение ссылок (например, «Забыли
пароль?»), тогда как наличие самого сервиса зависит от того, было ли
соответствующее приложение установлено администратором:
blitz-idp
–
веб-приложение «Личный кабинет», blitz-registration
– веб-приложение
«Регистрация пользователей», blitz-recovery
– веб-приложение
«Восстановление доступа».
Также на главной странице можно настроить параметры, применяемые во всех сервисах самообслуживания:
параметры кода подтверждения, отправляемого в SMS – можно изменить длину кода и время его действия, а также количество попыток;
параметры кода подтверждения, отправляемого по электронной почте – можно изменить длину кода и время его действия.

Сервисы самообслуживания и их общие настройки#
В подразделах осуществляется настройка каждого сервиса самообслуживания в отдельности.
Регистрация пользователей#
«Регистрация пользователей» – веб-приложение, позволяющее пользователю самостоятельно создать свою учетную запись. Настройка регистрации включает в себя конфигурирование формы регистрации, изменение параметров сервиса и создание процедуры регистрации (опционально).
Форма регистрации#
Перечень запрашиваемых данных пользователя определяется HTML-шаблоном. Шаблон представляет собой текстовый файл, который компилируется с помощью шаблонизатора Twirl. В шаблоне необходимо разместить функции, позволяющие пользователю при регистрации вводить данные о себе.
Примеры функций, доступных в шаблоне:
@attrInput("email", msg("reg.email"), Map("placeholder" -> "mail@example.com", "error-messages" -> msg("reg.email.wrong"), "input-type" -> "mail"))
– отображает на странице поле для ввода атрибутаemail
, описанного в системе.msg("reg.email")
- это название атрибута, которое берется из файла сообщений в соответствии с текущей локалью. При пустом поле ввода в нем отображается"mail@example.com"
в качестве подсказки, а при некорректном вводе – сообщениеmsg("reg.email.wrong")
из файла сообщений. Для элемента задаетсяinput-type
равныйmail
;@attrInput("family_name", "Фамилия", Map("placeholder" -> "Фамилия", "error-messages" -> "Ошибка"))
– отображает на странице поле для ввода фамилии пользователя в переменнуюfamily_name
. Эту переменную далее можно использовать при исполнении процедуры регистрации.@passwordsInput
- отображает на странице поля ввода пароля и его подтверждение;@agreement
- отображает ссылку на условия использования;@attrExpr
– функция, позволяющая создать вычисляемый атрибут (или присвоить атрибуту константное значение);@submitButton
- отображает кнопку «Зарегистрироваться».
Пример шаблона для регистрации:
@attrInput("family_name", "Фамилия", Map("placeholder" -> "Фамилия", "error-messages" -> "Ошибка"))
@attrInput("given_name", "Имя", Map("placeholder" -> "Имя", "error-messages" -> "Ошибка"))
@attrInput("phone_number", "Номер мобильного телефона", Map("placeholder" -> "+7(999)9999999", "error-messages" -> "reg.page.mobile.req.err.msg"))
@attrInput("email", "Адрес электронной почты", Map("placeholder" -> "name@example.com", "error-messages" -> "reg.page.email.req.err.msg", "input-type" -> "mail"))
@passwordsInput
@agreement
@attrExpr("sub","BIP-${&random(4)}")
@submitButton
Пример отображения указанного шаблона в интерфейсе веб-приложения «Регистрация пользователя» представлен на рисунке:

Пример отображения регистрационной формы#
Для добавления на форму регистрации выпадающего списка для выбора значений атрибута из справочника необходимо:
Создать на сервере Blitz Identity Provider директорию
/etc/blitz-config/custom_messages/dics
;Создать файл
/etc/blitz-config/custom_messages/dics/dic_name
с содержимым справочника (вместоdic_name
указать имя справочника, например,company_id
). Пример файлаcompany_id
для выпадающего справочника выбора компании:
001=Тестовая компания 1
002=Тестовая компания 2
003=Тестовая компания 3
Число в справочнике будет записываться в значение атрибута. Строка в справочнике будет показываться пользователю на форме регистрации.
Проверить владельца директории
dics
и файлов справочников в ней. Владелец должен бытьblitz:blitz
.
chown -R blitz:blitz /etc/blitz-config/custom_messages/dics
В конфигурационном файле
blitz.conf
в блокblitz.prod.local.idp.messages
добавить блокdics
. В настройкеnames
перечислить все имена справочников (для каждого справочника должен быть создан свой файл со значениями справочника). Например:
"dics" : {
"dir" : "custom_messages/dics",
"names" : [
"company_id"
]
}
Перезапустить приложение
blitz-registration
.В консоли управления в шаблоне страницы регистрации добавить строку с заполнением атрибута из справочника:
@attrInput("company", msg("Компания"), Map("dic" -> "company_id", "dic-default" -> "0", "sort" -> "key"))
Настройки сервиса регистрации#
В качестве настроек можно задать:
хранилище для учетной записи – нужно выбрать одно из сконфигурированных хранилищ (раздел «Источники данных») для сохранения учетной записи;
необходимые для регистрации атрибуты пользователя – атрибуты, наличие которых необходимо для завершения процедуры регистрации. Обязательные атрибуты пользователя не нужно включать в данный список. Возможно добавление нескольких альтернативных правил. Если отмечен чекбокс «Использовать условия из процедуры регистрации», то настроенные условия игнорируются и применяются условия, определенные функцией
isEnough
из процедуры регистрации.URL внешнего сервиса регистрации. Если задать в качестве параметра этот URL, то по этому адресу будет направлен пользователь при переходе к процессу регистрации (вместо приложения регистрации Blitz Identity Provider).
Скриншот фрагмента страницы настроек регистрации представлен на рисунке:

Скриншот настроек сервиса регистрации#
Процедура регистрации#
Процедура регистрации – Java-код, реализующий необходимые проверки после того, как пользователь заполнит форму регистрации. В ходе исполнения процедуры возможно выполнение следующих действий:
выполнение дополнительных проверок введенных данных;
выполнение преобразования введенных данных;
сохранение значений атрибутов в хранилище;
вызов внешних REST-сервисов.
При необходимости преобразовать данные, введенные пользователем, и далее
сохранить их в виде атрибутов, в шаблоне страницы регистрации следует
использовать функцию @attrInput
вместо @textInput
.
Изменение текста условий использования#
На странице регистрации пользователя размещена ссылка на условия
использования. Условия использования размещены в архиве assets.zip
,
расположенном в директории assets
установки Blitz Identity Provider
в заархивированном каталоге documents\user_agreement
.
Для изменения правил использования следует распаковать архив
assets.zip
, заменить файлы user_agreement_ru.pdf
(русская
версия) и user_agreement_en.pdf
(английская версия) на требуемые и
заархивировать архив с сохранением исходной структуры.
Также возможно изменить ссылку на правила использования. Для этого
следует отредактировать строку reg.page.reg.action.agreement
и
setPswd.page.agreement
(см. Текстовые сообщения веб-интерфейса).
Такой способ рекомендуется применять, если правила использования
размещены на внешнем ресурсе, например, в виде отдельной веб-страницы.
Личный кабинет#
«Личный кабинет» – веб-приложение, в котором пользователь может выполнить следующие действия:
посмотреть или изменить данные своей учетной записи;
посмотреть последние события безопасности (например, события входа);
сменить пароль;
посмотреть и настроить способы подтверждения входа (двухфакторной аутентификации);
посмотреть и настроить ключи безопасности;
посмотреть привязанные учетные записи социальных сетей, привязать новые «внешние» учетные записи, отвязать лишние учетные записи;
посмотреть привязанные устройства доступа, отвязать лишние устройства;
посмотреть и отозвать выданные приложениями разрешения на доступ к данным;
посмотреть события безопасности.
Настройка Личного кабинета включает в себя конфигурирование способа отображения атрибутов пользователя и изменение дополнительных параметров.
Отображение атрибутов пользователя#
На основной странице Личного кабинета отображается блок с данными учетной записи. Пример этого блока представлен на рисунке ниже.

Личный кабинет: данные учетной записи#
Отображение данных пользователя определяется HTML-шаблоном. Шаблон представляет собой текстовый файл, который компилируется с помощью шаблонизатора Twirl. В шаблоне необходимо разместить функции, позволяющие пользователю в Личном кабинете вводить и редактировать данные о себе.
В шаблоне доступны следующие функции:
@show(attrName)
– отображает значение атрибута;@showStrings(attrName, values)
– отображает значение массива;@editAsText(attrName, readableName, errorMsg)
– отображает значение атрибута и позволяет его изменить (параметрerrorMsg
необязательный);@editAsBoolean(attrName, readableName)
– отображает значение логического типа (true/false
) атрибута и позволяет его изменить;@editAsStrings(attrName, readableName, values)
– отображает значение (массив) атрибута и позволяет его изменить.
В этих функциях используются следующие параметры:
attrName
– название атрибута, определенное в разделе «Источники данных»;readableName
– отображаемое в письме пользователю имя атрибута (можно задать как идентификатор из файла сообщений или как текст);values
– значения, представляющие собой формат «ключ – описание», где ключ – значение массива, описание – читаемое значение ключа (например,ListMap("a" -> "значение a", "c" -> "значение c")
), может задаваться как идентификатор из файла сообщений или как текст;errorMsg
– описание ошибки, которое отображается в случае ошибочного ввода значения (можно задать как идентификатор из файла сообщений или как текст). Про файлы сообщений см. Текстовые сообщения веб-интерфейса. Рекомендуется использовать файлы сообщений при необходимости поддержки мультиязычности.
Примеры функций:
Отображение атрибута email:
@editAsText("email", "Электронная почта")
Отображение атрибута phone_number с возможностью его редактировать:
@editAsText("phone_number", "Мобильный телефон", "Ошибка")
Отображение булевого атрибута info с возможностью его редактировать:
@editAsBoolean("info", "Подписка")
Отображение массива строк massiv с возможностью его редактировать (выбор значений):
@editAsStrings("massiv", "Подписки", ListMap("a" -> "Акции и бонусные программы", "b" -> "Новости компании", "c" -> "Дайджест событий за месяц"))
Пример отображения массива строк в интерфейсе веб-приложения «Личный кабинет» представлен на рисунке:

Личный кабинет: массив строк (в режиме отображения и редактирования)#
Дополнительные параметры#
В качестве дополнительных параметров можно задать:
шаблон приветствия – информацию, которая отображается в правом верхнем углу Личного кабинета. Допустимо использовать строки подстановки. Например,
${family_name} ${given_name}
позволит отобразить фамилию и имя пользователя;URL для перехода после успешного выхода из Личного кабинета;
период отображаемых пользователям событий аудита (в календарных месяцах от текущей даты);
шаблон отображения геоданных в событиях (см. База геоданных). Шаблон можно составить из следующих элементов, содержащих сведения о стране, регионе, городе и координатах:
${ip_ctr}, ${ip_st}, ${ip_ct}, ${ip_lng}, ${ip_lat}, ${ip_rad}
доступные пользователям функции, т.е. функции, которые могут быть задействованы пользователем из Личного кабинета. Возможно включить или выключить следующие функции:
смена пароля;
управление ключами безопасности;
просмотр и привязка социальных сетей;
просмотр устройств доступа;
просмотр и отзыв разрешений;
просмотр событий;
привязка HOTP-генераторов;
привязка TOTP-генераторов;
настройка подтверждения входа по SMS-коду;
настройка push-аутентификации;
привязка ключей безопасности.

Настройка дополнительных параметров Личного кабинета#
Восстановление доступа#
Настройка сервиса восстановления доступа включает в себя указание атрибутов, по которым будет производиться поиск учетной записи, а также контактов (адреса электронной почты и/или номера мобильного телефона), которые будут использованы для восстановления доступа. Атрибуты с контактами должны быть определены в разделе «Источники данных» в качестве адреса электронной почты и номера мобильного телефона.
Опция «Проверять наличие пользователей, имеющих право менять пароль в найденной учетной записи» определяет, что если у найденного пользователя имеется связанная («родительская») учетная запись, имеющая право менять пароль этому пользователю, то об этом будет выведено предупреждение при попытке восстановления пароля.
Опция «Снимать блокировку по неактивности после восстановления доступа» определяет, что для заблокированных по причине длительной неактивности учетных записей разрешено восстановление пароля, и что после замены пароля в результате успешного восстановления блокировка по причине длительной неактивности должна быть отменена.
Опция «Включить дополнительную проверку для учетных записей с настроенной двухфакторной аутентификацией» определяет, что для учетных записей с настроенной двухфакторной аутентификацией должно требоваться дополнительное подтверждение из числа методов аутентификации, указанных в настройке «Список методов». В качестве методов можно выбрать подтверждение кода, полученного по электронной почте, по SMS и с помощью кода, сгенерированного TOTP-приложением.
С помощью настройки «Атрибуты для проверки» можно определить, значения каких атрибутов дополнительно должен ввести пользователь в процессе восстановления пароля для подтверждения владения учетной записью. Добавление такой проверки усложняет атаку на сброс пароля через множественный перебор в форме восстановления забытого пароля. На главной странице у пользователя будут запрошены атрибуты для сверки (например, фамилия) и восстановление будет выполнено только в том случае, если найденная учетная запись будет иметь идентичное значение атрибута.
С помощью настроек «Общее количество попыток» и «Время блокировки при превышении попыток, в мин.» можно ограничить количество попыток запроса отправки и неуспешного ввода кодов подтверждения, отправленных по электронной почте и SMS для учетной записи, при превышении которых временно для учетной записи будет ограничена возможность восстановления пароля.

Восстановление доступа#