Настройка опций запуска приложений Blitz Identity Provider#

Для приложений Blitz Identity Provider доступны следующие Java-опции, определяющие включение особых режимов функционирования приложений и переопределить стандартные режимы работы:

Внимание

Перед установкой опций рекомендуется проконсультироваться с технической поддержкой Blitz Identity Provider.

  • blitz.login.cookie.sameSite – задает флаг, с которым должны создаваться сессионные cookies в Blitz Identity Provider. По умолчанию cookies создаются с флагом sameSite=Lax. Можно переопределить на значение None.

  • blitz.login.outside.flow.callback.ttl.sec – задает время ожидания ответа от вызванного из Blitz Identity Provider внешнего метода аутентификации. По умолчанию значение 300 секунд.

  • blitz.login.mus.cookie.unused.ttl.sec – задает срок жизни cookie, отвечающей за запоминание списка залогиненных в текущем браузере пользователей. По умолчанию значение соответствует 365 дней (значение задается в секундах);

  • blitz.login.bua.cookie.ttl.sec – задает время действия cookie, используемой для запоминания браузера пользователя. По умолчанию значение соответствует 365 дней (значение задается в секундах);

  • blitz.login.setLastAuth.disabled – позволяет отключить запись в базу данных времени последней аутентификации пользователя. По умолчанию время последней аутентификации пользователя пишется в базу данных. Отключение записи времени последней аутентификации позволяет повысить производительность базы данных, но не позволяет задействовать функцию блокирования учетных записей по неактивности;

  • blitzDispatchedQueues – задает имя очереди, из которой приложение Blitz Identity Provider обрабатывает задачи на отправку писем, регистрацию пользователей и восстановление паролей. По умолчанию используется очередь с именем default;

  • blitz.stores.united.u-cache.ttlInSec – срок действия кэша данных учетной записи, предоставляемых через REST API. По умолчанию 1 секунда;

  • blitz.csrf.cookie.ttlInSec – задает время действия cookie, препятствующей CSRF. По умолчанию соответствует 6 часам (значение задается в секундах). Это максимальное время с момента открытия пользователем страницы и до выполнения заполненной страницы пользователем на сервер;

  • blitz.jdbc.cols.types.strings – задает тип колонки, используемой для сохранения строковых атрибутов в реляционной СУБД (PostgreSQL). По умолчанию используется тип text;

  • blitz.jdbc.pool.stat-period – задает периодичность, с которой статистика использования JDBC записывается в лог. По умолчанию 300 секунд;

  • saml.numThreads – задает количество потоков, которые в Blitz Identity Provider обрабатывают запросы на вход через SAML. По умолчанию 32 потока;

  • blitz.oauth.exchange.rules.fs.cache.capacity – задает размер кэша, используемый Blitz Identity Provider для проверки правил доступа к микросервисам. По умолчанию размер кэша в 10000 проверок;

  • blitz.oauth.dyn.reg.clientSecretLength – задает размер client_secret, генерируемого при динамической регистрации пары client_id и client_secret. По умолчанию генерируется client_secret размером в 15 символов.

  • blitz.oauth.dyn.reg.clientAttachingTllInSec – задает время, в течение которого сгенерированная при динамической регистрации пара client_id и client_secret должна быть ассоциирована с пользователем (если в течение этого времени пара не будет ассоциирована с пользователем, то она будет аннулирована). По умолчанию соответствует 1 часу (значение задается в секундах).

  • blitz.session.checkRemoteAddress.disabled – задайте true для отключения проверки равенства IP-адреса сессии и входящего запроса (рекомендуется при наличии пользователей с динамическими IP-адресами).

  • blitz.webauthn.residentKey.preferred – если опция задана, то ключи безопасности регистрируются с параметром residentKey=preferred. При этом, в случае если опция задана как true, то requireResidentKey=true, а если опция false, то requireResidentKey=false.

  • blitz.ldap.store.extension.class – при передаче в опцию значения com.identityblitz.idp.store.ldap.custom.PasswordMigrationExt включается режим миграции пароля.

  • blitz.ldap.store.extension.PasswordMigrationExt.passwordHashAttr – задает имя LDAP-атрибута, в котором храниться хеш-пароля для опции миграции пароля. Хэш должен содержать префикс {bcrypt} для миграции паролей из хэшей с алгоритмом bcrypt.

  • extensionsDir – адрес директории с модулями расширений.

  • metrics – позволяет отключить сбор метрик функционирования в формате Prometheus. Для этого нужно выставить значение false. По умолчанию сбор метрик включен

  • couchbase.durability.mode – задает режим сохранения данных в Couchbase Server. В случае использования Couchbase Server версии 6.0.1 и более старых должен обязательно использоваться режим clientVerified. В случае использования Couchbase Server версий 6.5, 7.0 или новее режим clientVerified использовать нельзя. Параметр в Couchbase Server версий 6.5, 7.0 становится опционален (при отсутствии параметра используется режим majority) и позволяет выбрать требуемый режим гарантированности сохранения данных в кластере с репликацией из следующих вариантов:

    • disabled – ожидание записи только в память на основном узле кластера;

    • majority – ожидание записи в память на основном узле и большинстве реплик;

    • majorityAndPersistActive – ожидание записи на диск на основном узле и записи в память большинства реплик;

    • persistToMajority – ожидание записи на диск на основном узле и в большинстве реплик.

  • akka.http.parsing.max-uri-length – задает максимальную длину URI в строке браузера. В некоторых случаях может потребоваться увеличить размер строки, тогда рекомендуется в этом параметре задать значение 16k.

  • akka.http.parsing.max-header-value-length – задает максимально допустимый размер HTTP-заголовка. В некоторых случаях может потребоваться увеличить размер заголовка, тогда рекомендуется в этом параметре задать значение 16k.

  • akka.coordinated-shutdown.phases.service-stop.timeout – задает время ожидания после получения команды на остановку сервиса, в течение которого сервис может завершить взятые в работу задачи. В случае использования встроенного в Blitz Identity Provider брокера сообщений рекомендуется выставить для приложения параметр в значение 30s.

  • memcached.locator.tries – определяет количество попыток найти работающий сервер Memcached в случае обработки сбоя обращения к серверу Memcached.

Предупреждение

Не гарантируется, что используемые опции будут сохранены в будущих версиях Blitz Identity Provider.

Для задания опций со значениями, отличающимися от значений по умолчанию, необходимо отредактировать файл /etc/default/blitz-idp. Задать в нем необходимые JAVA_OPTS. Ниже приведен пример файла, в котором среди Java-опций также заданы опции blitz.csrf.cookie.ttlInSec и blitz.login.cookie.sameSite. После изменения JAVA_OPTS необходимо перезапустить приложения Blitz Identity Provider, на которых сделаны изменения.

export JAVA_HOME=/usr/java/default
export PIDFILE=/usr/share/identityblitz/blitz-idp/RUNNING_PID
export JAVA_OPTS="-server -Xms512m -Xmx1G -XX:MaxMetaspaceSize=512m -Xmn256m -Dcom.couchbase.connectTimeout=30000 -Dakka.http.parsing.max-uri-length=16k"
export JAVA_OPTS="$JAVA_OPTS -Dblitz.csrf.cookie.ttlInSec=36000 -Dblitz.login.cookie.sameSite=None -Dplay.filters.headers.frameOptions=null"