Инструкции по обновлению#
Важно
Если обновление ставится с пропуском промежуточных версий, то устанавливать blitz.bin нужно только от последней версии, а остальные настройки выполнить по всем пропускаемым при обновлении релизам.
Внимание
В случае СУБД PostgreSQL нужно проверить по актуальному файлу resources.zip, какие в нем появились новые DDL-скрипты, и выполнить их, если такие изменения отсутствуют в текущей схеме БД.
5.26 -> 5.28#
В случае использования СУБД PostgreSQL применить скрипты:
024-5.27.0.sql,025-5.28.0.sql.
Установить
blitz-5.28.bin.Появилась возможность на втором факторе подтверждать вход вводом пароля. В связи с этим необходимо внести следующие изменения в файл конфигурации
/usr/share/identityblitz/blitz-config/blitz.conf:в разделе
blitz.prod.local.idp.login.methods.passwordизменить конфигурацию на профилированную:"password":{ "profiles" : { "1": { Прежнее содержимое раздела password } } }
при необходимости добавить метод входа по паролю в раздел
blitz.prod.local.idp.login.factorsво второй список:"login" : { "factors" : [ [ … ], [ { "enabled" : false, "method" : "password" }, … ] ], … }далее в консоли управления настроить и активировать метод подтверждения входа по паролю.
Добавлена возможность использовать для входа на первом факторе разовый код на основе времени (TOTP). В связи с этим необходимо внести следующие изменения в файл конфигурации
/usr/share/identityblitz/blitz-config/blitz.confдаже при неиспользовании данного метода:в разделе
blitz.prod.local.idp.login.factorsв первый фактор необходимо добавить:{ "enabled" : false, "method" : "totp" }
в разделе
blitz.prod.local.idp.login.methods.totpнеобходимо сменить конфигурацию на профилированную, а также убрать поляandroid-download-url,ios-download-url,windows-download-url,issuer-label,user-label-attr(эти поля перемещаются в другой раздел файла конфигурации):"totp": { "profiles": { "1": { "look-ahead-depth": 10, "look-backward-depth": 10, "tempLockAfter": 10, "tempLockForMin": 15 }, "2": { "look-ahead-depth": 10, "look-backward-depth": 10, "tempLockAfter": 10, "tempLockForMin": 15 } } }
поля
android-download-url,ios-download-url,issuer-label,user-label-attrтеперь доступны в отдельном разделеblitz.prod.local.idp.totp. Полеwindows-download-urlбольше не поддерживается. Пример конфигурационного файла:"totp": { "android-download-url": "https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2", "ios-download-url": "https://itunes.apple.com/us/app/google-authenticator/id388497605?mt=8", "issuer-label": "Blitz IDP", "look-ahead-depth": 15, "look-backward-depth": 15, "user-label-attr": "email" }
При использовании RabbitMQ необходимо внести изменения изменения в файл конфигурации
/usr/share/identityblitz/blitz-config/blitz.conf. Переименованы следующие параметры подключения к RabbitMQ в блокеblitz.prod.local.idp.eventsв разделахdrivers.${driver_id}:Параметр
recovery_intervalпереименован вrecoveryInterval;Параметр
properties.connectionsпереименован вproperties;Параметр
properties.publishпереименован вdeliveryProps. Данный параметр предназначен для хранения свойств сообщения и регулирует отправку (AMQP.BasicProperties). В данном параметре можно конфигурировать толькоdeliveryMode(значение по умолчанию 2 - Persistent).
Пример файла конфигурации:
"events": { "drivers": { "rabbit_driver": { "properties": { // optional "virtual": { "host": "testVhost" } }, "server": { "host": "localhost", "port": 5672 }, "type": "RMQ", "recoveryInterval": 60, // default 60 "user": { "password": "quest", "username": "guest" }, "ssl": { // optional "protocol": "TLSv1.2" // optional }, "deliveryProps": { //optional "deliveryMode": 2 // default = 2 }, "channelsSize": 8, // default = 8 "poolSize": 8 // default = 8 } } }
Добавлена возможность входа методом входящего звонка (flashCall) на первом факторе. В связи с этим необходимо внести следующие изменения в файл конфигурации
/usr/share/identityblitz/blitz-config/blitz.conf.
При использовании метода:
В разделе
blitz.prod.local.idp.login.factorsв первый фактор необходимо добавить:{ "enabled" : false, "method" : "flashCall" }
Необходимо удалить из конфигурационного файла из раздела
blitz.prod.local.idp.login.methodsстарую конфигурацию для flashCall метода, поскольку больше нет обратной поддержки старого формата опций:"flashCall" : { "callTempLockAfter" : 10, "callTempLockForMin" : 15, "flow" : "flashcall.FlashCallFlow", "mobileAttrName" : "mobile", "psw-expire-time-sec" : 300, "psw-length" : 4, "psw-max-attempts" : 10, "tempLockAfter" : 10, "tempLockForMin" : 15 }
Далее необходимо настроить метод в консоли. Для этого перейдите в раздел
Источники данныхи убедитесь, что мобильный атрибут может быть использован для операций поиска. Затем перейдите в разделАутентификацияна вкладкуПервый фактор. В разделеВход по входящему звонкузадайте соответствующие настройки.
При неиспользовании метода:
В разделе конфигурационного файла
blitz.prod.local.idp.login.methodsпоместить старую конфигурацию в блок:“flashCall” : { “profiles” : { “2” : { //Старые ключи } } }
5.23 -> 5.26#
В случае использования СУБД PostgreSQL применить скрипт:
023-5.26.0.sql.Установить
blitz-5.26.bin.В конфигурационном файле в параметр
attrsпрописать атрибуты для разрешенийblitz_api_sys_users,blitz_api_sys_users_chg,blitz_api_user,blitz_api_user_chg. Ниже показан пример добавления атрибутов для разрешенияblitz_api_user."attrs" : [ "sub", "family_name", "company", "given_name"], "client-level" : false, "deprecated" : false, "descriptions" : { "default" : "Получение атрибутов" }, "enabled" : true, "names" : { "default" : "blitz_api_user" }, "sysname" : "blitz_api_user" },
5.22.5 -> 5.23#
В случае использования СУБД PostgreSQL применить скрипт:
022-5.23.0.sql.На серверах с Blitz Identity Provider установить JDK 11. Определить актуальное значение
JAVA_HOME.В файлах конфигурации
/etc/default/blitz-*указать новое значение параметраJAVA_HOME.Установить
blitz-5.23.bin.Теперь Blitz Identity Provider позволяет сохранять группы пользователя в организации, полученные от внешнего поставщика ЕСИА, и передавать их по запросу в утверждениях токена идентификации. Для того чтобы задействовать данную возможность, необходимо выполнить следующие действия:
Открыть файл конфигурации
/usr/share/identityblitz/blitz-config/blitz.conf.В секции
blitz.prod.local.idp.federation.points.esia.org.scopesдобавить разрешение на получение данных о группах пользователяhttp://esia.gosuslugi.ru/org_grps."org" : { ..., "scopes" : [ ..., "http://esia.gosuslugi.ru/org_grps" ] }, ...
В результате группы пользователя будут сохраняться в базе данных в атрибуте
org.groupNames.Для передачи групп пользователя из атрибута
org.groupNamesв утверждение (claim) токена идентификации, внести изменения в секциюblitz.prod.local.idp.federation.points.esia.claims. Ниже показан пример передачи параметра в утверждение с именемorg_groups."claims" : [ { "name" : "org_groups", "value" : "org.groupNames" } ]
При наличии настроек провести миграцию имен в новый формат в блоке
blitz.prod.local.idp.internal-store-jdbc.pool:max_total_conn->maxTotalConn,max_idle_conn->maxIdleConn,min_idle_conn->minIdleConn,max_wait_conn_ms->maxWaitConnMs.
В тот же блок добавить параметры расширенной настройки пула соединений.
Пример настроек после редактирования:
"internal-store-jdbc" : { "pool" : { "maxIdleConn" : 10, "maxTotalConn" : 20, "maxWaitConnMs" : 30000, "minIdleConn" : 7, "testOnBorrow" : false, "testOnCreate" : false, "testOnReturn" : false, "testWhileIdle" : true, "timeBetweenEvictionRunsMillis" : 30000, "validationQuery" : "" } }
При необходимости задействовать следующие новые возможности:
Потребовать при восстановлении доступа подтверждение по второму фактору только в случае, если для пользователя включен хотя бы один метод из списка методов дополнительной проверки (
Необходимость дополнительной проверки->Требовать, если доступна).Добавить параметры
obj_type(тип пользователя) иroles(типы ролей пользователя) в вызов сервиса аутентификации ЕСИА.Добавить возможность регистрации пользователя во внешнем поставщике при входе через него.
Настроить отображение в консоли и Личном кабинете информации о привязанных внешних аккаунтах пользователя. Настройку можно сделать в консоли, посредством процедуры на Java и через API.
В процедуру обработки запросов RADIUS добавить функции, позволяющие выбирать способ подтверждения входа и отображать краткую инструкцию по способам подтверждения.
Настроить интервал считывания глобальной конфигурации кластера Couchbase Server.
5.21.1 -> 5.22.5#
Установить
blitz-5.22.5.bin.При необходимости задействовать новые возможности:
Настроить первичный вход по электронной почте.
Выбрать хранилище учетных записей для первичного входа по SMS.
Настроить аутентификацию с ЕСИА с использованием КриптоПро JCP.
Отключить запоминание логина пользователя для будущих входов.
Добавить в процедуру входа вызов сброса сессии.
Добавить в процедуру входа кастомные ошибки.
Настроить метки приложений и задействовать их в процедуре входа.
Кастомизировать логотип и CSS-оформление Личного кабинета.
Настроить получение признака
isIdentifiedиз Tinkoff ID.
Если профили первого и второго фактора для методов входа по коду из SMS/push, с помощью электронной почты или ключа безопасности ранее были объединены, необходимо открыть файл конфигурации
/usr/share/identityblitz/blitz-config/blitz.confи разделить профили вручную в секцияхemail,sms,webAuthnразделаidp.login.methods. В настройки второго фактора не нужно переносить параметрыbind,storeRouter,factorCoverage(только дляwebAuthn).Пример разделения профилей для входа с помощью электронной почты#"email": { "profiles": { "1": { "attr": "${email-}", "bind": [ [ { "attr": "email", "value": "${login}" } ] ], "psw-expire-time-sec": 300, "psw-length": 6, "psw-max-attempts": 3, "tempLockAfter": 100, "tempLockForMin": 1, "storeRouter": {} }, "2": { "attr": "${email-}", "psw-expire-time-sec": 300, "psw-length": 6, "psw-max-attempts": 3, "tempLockAfter": 100, "tempLockForMin": 1 } } }
Пример разделения профилей для входа по коду из SMS/push#"sms": { "profiles": { "1": { "bind": [ [ { "attr": "personal_mobile", "value": "${login}" } ], [ { "attr": "uid", "value": "${login}" } ] ], "channels": [ { "attr": "${personal_mobile-}${uid-}", "type": "push" }, { "attr": "${personal_mobile-}", "type": "sms" } ], "psw-expire-time-sec": 30, "psw-length": 2, "psw-max-attempts": 3, "tempLockAfter": 10, "tempLockForMin": 15, "storeRouter": {} }, "2": { "channels": [ { "attr": "${personal_mobile-}${uid-}", "type": "push" }, { "attr": "${personal_mobile-}", "type": "sms" } ], "psw-expire-time-sec": 30, "psw-length": 2, "psw-max-attempts": 3, "tempLockAfter": 10, "tempLockForMin": 15 } } }
Пример разделения профилей для входа с помощью ключа безопасности#"webAuthn" : { "profiles" : { "1" : { "alwaysApplicable" : true, "bind" : [ [ { "attr" : "surname", "value" : "mysurname" } ] ], "factorCoverage" : 2, "storeRouter" : { "cases" : [ { "matchers" : [ { "not" : false, "pattern" : "myemail@m.ru", "source" : "${login}" } ], "result" : "dldap01" } ] }, "trustedAttestationModes" : [ "FULL", "FULL_NO_ROOT", "SELF" ] }, "2" : { "alwaysApplicable" : false, "trustedAttestationModes" : [ "FULL", "FULL_NO_ROOT", "SELF" ] } } }
5.20.0 -> 5.21.0 (5.21.1)#
В случае использования СУБД PostgreSQL применить скрипт:
021-5.21.0.sql.Установить
blitz-5.21.0.bin.При необходимости задействовать новую возможность: настроить доступ к сетевым службам по протоколу RADIUS.
В новой версии изменился установленный по умолчанию идентификатор поставщика идентификации
issuer, а также URL сервиса OpenID Connect Discovery:В предыдущих версиях
issuerсоответствовал значениюdomain, гдеdomain– внешнее имя домена системы. Теперьissuerформируется какdomain/context, гдеcontext– URL-путь, на котором функционирует Blitz Identity Provider.В предыдущих версиях сервис OIDC Discovery располагался по адресу
https://<issuer>/<context>/oauth/.well-known/openid-configuration. Теперь адрес формируется какhttps://<issuer>/.well-known/openid-configuration.
С учетом вышесказанного после установки обновления сервис OIDC Discovery автоматически переместится на адрес
https://<domain>/<context>/.well-known/openid-configuration.Система продолжит работу, поскольку для обратной совместимости со старого адреса настроен редирект на новый адрес. В данной ситуации вы можете пойти по одному из следующих путей:
Не менять настройки приложений, но явно указать значение
issuerв секцииblitz.prod.local.idp.netфайла конфигурации/usr/share/identityblitz/blitz-config/blitz.confкак всë, что стоит перед/.well-known/openid-configuration. Это позволит избежать лишних редиректов при функционировании системы.Внимание
Решение не рекомендуется в долгосрочной перспективе.
"net" : { "domain" : "demo.idblitz.ru", "issuer" : "demo.idblitz.ru/blitz/oauth", ... }, ...
Рекомендуется Привести настройки своей системы и подключенных приложений в соответствие с новыми правилами, указав в них значение адреса OIDC Discovery как
https://<domain>/<context>/.well-known/openid-configuration.
5.18.0 -> 5.20.0#
В случае использования СУБД PostgreSQL применить скрипт:
020-5.20.0.sql.Установить
blitz-5.20.0.bin.При необходимости настроить новые способы аутентификации:
При необходимости задействовать новые возможности кастомизации работы с помощью программирования на Java:
5.16.2 -> 5.18.0#
В случае использования СУБД PostgreSQL применить скрипты:
018-5.17.0.sql019-5.18.0.sql
Найти в конфигурационном файле
blitz.confблок настроекblitz.prod.local.idp.provisioning.recovery. Внести в блок следующие изменения:Переименовать настройку
security-questionвsystem-security-questions.Создать блок
factor2и перенести в него целиком секциюmethodsс содержимым. Удалить исходную секциюmethods.В блоке
factor2установить"mode" : "by_user_required_factor".
Пример блока после редактирования#"recovery" : { "dropInactivityLock" : true, "factor2" : { "methods" : [ "email", "sms", "totp" ], "mode" : "by_user_required_factor" }, "recovery-contacts" : [ "phone_number", "email" ], "search-attrs" : [ "email", "phone_number" ], "system-security-questions" : { "attrs" : [ "family_name" ] } }
Установить
blitz-5.18.0.bin.
5.15.x -> 5.16.x#
В настройках
nginxзакрыть доступ на адреса/blitz/metricsиз внешних сетей:location /blitz/metrics { return 404; }
При использовании для приложений особых
bundleс помощьюlang-variant(опциональное полеlang-variantв настройках приложения) нужно все варианты языка прописать в настройкуlangвblitz.confв настройкуlang-variant.Пример:
"lang": { "ignore-browser": false, "lang-variants": ["12345", "12346"], // this field "languages": ["ru","en"], "portal-lang-cookie": { "domain": ".identityblitz.ru", "name": "portal_lang" } }
Установить новый
blitz.bin.При необходимости настроить сбор метрик функционирования в Prometheus через непосредственное обращение к
/blitz/metricsпо внутренним адресам серверов приложений.При необходимости настроить хранение настроек приложений в отдельных файлах.
5.14.0 -> 5.15.x#
В случае использования СУБД PostgreSQL применить скрипты:
017-5.15.0.sql
Установить новый
blitz.bin.
5.11.x -> 5.14.0#
В случае использования СУБД PostgreSQL применить скрипты:
015-5.12.0.sql,016-5.13.0.sql
Установить новый
blitz.bin.В разделе «Внешний вид» проверить, что для всех шаблонов в поле «Название шаблона» задано уникальное имя. Если есть несколько шаблонов с одинаковым названием, то переименовать их.
Для каждого настроенного внешнего поставщика идентификации в новом блоке «Выбор пользователя» заполнить значения настроек «Имя пользователя» и «Идентификатор пользователя». Пример заполнения:
Имя пользователя –
${given_name-} ${family_name-}Идентификатор пользователя –
${email&maskInMiddle(4,8)}
Настройка используется в процессе привязки пользователя при первом входе через внешний поставщик идентификации. На основе настройки пользователю показывается карточка найденной для привязки учетной записи в Blitz Identity Provider, соответствующей учетной записи внешнего поставщика идентификации.
Проверить функции входа через внешние поставщики идентификации, если внешний вид экранов привязки при входе будет нарушен, то скорректировать используемые темы внешнего вида.
Корректировка настроек в конфигурационном файле
console.conf:Если используется вход в консоль управления по логину/паролю, то в
console.confдобавить настройкуroleClaimс пустым значением:
Пример:
{ "login" : { "fp" : { ... "subjectClaim" : "sub", "roleClaim" : "", ... }, "mode" : "credentials" } }
Если используется функция входа в консоль управления через SSO, то в
console.confв блокlogin.fpдобавить настройкуroleClaim. В качестве значения указать имя атрибута изid_token, в котором передается роль администратора (обычные названия ролей:root,security,sysadmin,app_admin,ui_admin,support, берутся из файла настроекcredentialsизroles.name). Настроить, чтобы внешняя IDP передавала атрибут с ролью. Атрибут может быть текстовым (String) – тогда передается одна роль, или массивом строк (ArrayOfString), тогда можно передавать множество ролей.
Пример:
{ "login" : { "fp" : { ... "subjectClaim" : "sub", "roleClaim" : "SOME_CLAIM_NAME", ... }, "mode" : "sso" } }
Из меню “Администраторы” консоли можно удалить тех пользователей-админов, которые входят только через внешний SSO-вход.
5.10.0 -> 5.11.x#
В случае использования СУБД PostgreSQL применить скрипты
000-service-tasks.sql,013-tasks.sql,014-sec_ch_ua.sql.Проверить нестандартные строчки в
custom_messages. Если в строчках с текстами писем используется функция$[device.mkey&dic(dics.devices)], то заменить ее на$[device.mkey&dic(dics.devices,os.ver)].Установить новый
blitz.bin.В файле
play.confскорректировать настройки подключения к memcached – добавитьoperationTimeout,timeoutExceptionthreshold,maxReconnectDelay:operationTimeout– время ожидания выполнения запроса к memcached в мс;timeoutExceptionThreshold– количество попыток выполнения запроса, после которых узел считается не доступным;maxReconectDelay– интервал между попытками установить соединение с узлом в секундах.
Пример конфига с добавленными настройками с рекомендуемыми значениями:
"memcached" : { "operationTimeout" : 1000, "timeoutExceptionThreshold" : 1, "maxReconnectDelay" : 10, "servers" : [ … ] }В случае использования СУБД PostgreSQL при необходимости переключить обработку задач с брокера RabbitMQ на брокер jdbc (это можно сделать если RabbitMQ больше ни для чего не используется и есть желание отказаться от его дальнейшего использования). Брокер jdbc рекомендуется использовать только в средах с небольшой нагрузкой.
Для настройки использования брокера jdbc необходимо:
Проверить, что в блоке настроек
storesв файлеblitz.confзадана настройкаdefault-typeв значении jdbc:
"stores" : { "default-type" : "jdbc" },
В файл
blitz.confв блокеtasksскорректировать настройки брокера следующим образом:
"tasks" : { "broker-type" : "task-store", "executionRules" : [ { "maxAttempts" : 2, "queue" : "blitz-tasks", "redeliveryDelayInSec" : 60 } ], "queues" : [ { "dequeueBatchSize" : 10, "dequeuePeriodInSec" : 30, "executorPoolSize" : 5, "name" : "blitz-tasks" } ] }
Серверу, выполняющему обработку задач, добавить параметр запуска
akka.coordinated-shutdown.phases.service-stop.timeoutв значении30s:
Dakka.coordinated-shutdown.phases.service-stop.timeout=30s