Общая инструкция по установке#
В общем случае установка Blitz Identity Provider выполняется в описанной ниже последовательности.
Совет
В зависимости от используемой операционной системы есть своя специфика по установке необходимого окружения. Для удобства воспользуйтесь экспресс-инструкциями для отечественных и зарубежных ОС.
Важно
Перед развертыванием ознакомьтесь с архитектурой развертывания Blitz Identity Provider.
Шаг 1. JDK#
На серверах, предназначенных для установки ПО сервера Blitz Identity Provider и административной консоли Blitz Identity Provider, необходимо установить и настроить JDK 11, руководствуясь официальной справочной документацией, используя один из следующих продуктов:
OpenJDK 11 Рекомендуется для сертифицированной версии;
Примечание
Для установки OpenJDK 11 в CentOS и RHEL выполните команду:
sudo yum install java-11-openjdk-devel
Axiom JDK 11 Certified Рекомендуется для сертифицированной версии;
Шаг 2. Memcached#
Внимание
Версия memcached
должна быть 1.4.15 или выше. Сервис memcached должен быть установлен на серверах, предназначенных для установки сервисов Blitz Identity Provider: blitz-console
, blitz-idp
, blitz-registration
, blitz-recovery
.
Выполнить команду:
yum -y install memcached
После завершения установки добавить сервис
memcached
в автозапуск и запустить сервис:systemctl enable memcached systemctl start memcached
Выполнить команду:
apt-get install memcached
После завершения установки добавить сервис
memcached
в автозапуск и запустить сервис:systemctl enable memcached systemctl start memcached
Важно
Сервис memcached
запускается на порту 11211
. Нужно убедиться, что этот порт открыт на межсетевых экранах и может быть использован для соединения между сервисами Blitz Identity Provider.
Шаг 3. СУБД#
Установка Couchbase Server
Инструкция по установке Couchbase Server приводится для CentOS 7 и RHEL 7. В случае развертывания под отечественные операционные системы в качестве СУБД рекомендуется использовать PostgreSQL.
Установить Couchbase Server на каждый из выделенных под установку СУБД серверов согласно инструкции. Дистрибутив Couchbase Server можно скачать здесь.
Важно
В DEV/TEST-средах допустимо Couchbase Server устанавливать на существующие сервера с Blitz Identity Provider, но в этом случае нужно учесть, что в Couchbase Server используется своя встроенная memcached-служба, и во избежание конфликта необходимо скорректировать используемые Memcached порты в Blitz Identity Provider/Couchbase Server.
Добавить сервис Couchbase Server в автозапуск и запустить сервис:
systemctl enable couchbase-server systemctl start couchbase-server
Проверить работоспособность сервиса, выполнив команду:
systemctl status couchbase-server
Инициализировать на каждом сервере кластер Couchbase Server согласно инструкции (на первом сервере инициализируется кластер, остальные сервера включаются в кластер). Все настройки можно задать как предложено по умолчанию, только нужно для каждого сервера в
hostname
задать полное имя сервера. В качестве имени сервера не рекомендуется использовать его IP-адрес.На любом из серверов кластера Couchbase Server выполнить скрипт по подготовке Couchbase Server к использованию Blitz Identity Provider. Скрипт находятся в директории
couchbase
в архивеresources.zip
в составе дистрибутива Blitz Identity Provider. Скрипт нужно скопировать на любой сервер кластера Couchbase Server, перейти в директорию и выполнить скрипт созданияbuckets
для хранения информации Blitz Identity Provider и индексов для выполнения поисковых запросов Blitz Identity Provider в БД:./cb_init.sh
В процессе выполнения скрипта понадобится ввести:
имя URL сервера Couchbase Server – ввести строку вида
http://<hostname>:8091
, где в качестве hostname указать имя хоста сервера, с которого выполняется скрипт;логин учетной записи администратора Couchbase Server – задается при инициализации кластера при выполнении предыдущего пункта инструкции;
пароль учетной записи администратора Couchbase Server – задается при инициализации кластера при выполнении предыдущего пункта инструкции;
логин учетной записи Couchbase Server, которая создастся в процессе выполнения этого скрипта для подключения сервисов Blitz Identity Provider;
Совет
Рекомендуется задать имя
blitz
.пароль учетной записи Couchbase Server для подключения приложений Blitz Identity Provider.
После выполнения скрипта произвести следующие настройки:
В консоли администрирования Couchbase Server отредактировать настройки количества копий данных на различных экземплярах Couchbase. Для этого в меню Buckets поочередно выбрать каждый
bucket
, нажать на нем Edit и задать значение настройки Enable в блоке Replicas и установить число реплик. Для кластера из трех серверов рекомендуется задать в настройке значение1
для числа реплик. Затем в меню Settings рекомендуется включить настройку Enable auto-failover и задать значение «Timeout» в30
секунд (auto-failover будет работать, только если в кластере СУБД не менее 3 серверов и настроена репликация дляbucket
).
Установка и настройка PostgreSQL
Внимание
Версия PostgreSQL должна быть 9.6 или новее.
Установить PostgreSQL согласно инструкции.
Выполнить команду:
apt-get install postgresql
После завершения установки запустить сервис:
systemctl start postgresql
После завершения установки PostgreSQL в выбранной ОС необходимо выполнить скрипт по подготовке PostgreSQL к использованию Blitz Identity Provider. Скрипты находятся в директории postgres
в архиве resources.zip
в составе дистрибутива Blitz Identity Provider. Скрипты нужно скопировать на сервер PostgreSQL, перейти в директорию и по очереди выполнить команды:
su - postgres
createdb blitzdb
psql
CREATE USER blitz WITH ENCRYPTED PASSWORD 'set-your-pwd';
GRANT ALL PRIVILEGES ON DATABASE blitzdb TO blitz;
GRANT ALL ON ALL TABLES IN SCHEMA public TO blitz;
psql -d blitzdb -U blitz -f 000-SCRIPT000.sql
…
psql -d blitzdb -U blitz -f NNN-SCRIPTNNN.sql
Вместо set-your-pwd
нужно вставить пароль, который будет использоваться для подключения к PostgreSQL.
Вместо 000-SCRIPT000.sql … NNN-SCRIPTNNN.sql
нужно вставить имена скриптов из директории postgres/ddl
из архива resources.zip
. Например:
psql -d blitzdb -U blitz -f 000-service-tasks.sql
psql -d blitzdb -U blitz -f 001-init-database.sql
psql -d blitzdb -U blitz -f 002-new_pp_columns.sql
psql -d blitzdb -U blitz -f 003-usd_id_table.sql
psql -d blitzdb -U blitz -f 004-usr_auth_table.sql
psql -d blitzdb -U blitz -f 005-usr_agt_table.sql
psql -d blitzdb -U blitz -f 006-usr_htp_hmc_alg.sql
psql -d blitzdb -U blitz -f 007-usr_atr_cfm.sql
psql -d blitzdb -U blitz -f 008-wak.sql
psql -d blitzdb -U blitz -f 009-fix_pp_column.sql
psql -d blitzdb -U blitz -f 010-add_usr_prp.sql
psql -d blitzdb -U blitz -f 011-pp_audit.sql
psql -d blitzdb -U blitz -f 012-geo_to_audit.sql
psql -d blitzdb -U blitz -f 013-tasks.sql
psql -d blitzdb -U blitz -f 014-sec_ch_ua.sql
psql -d blitzdb -U blitz -f 015-5.12.0.sql
psql -d blitzdb -U blitz -f 016-5.13.0.sql
psql -d blitzdb -U blitz -f 017-5.15.0.sql
psql -d blitzdb -U blitz -f 018-5.17.0.sql
psql -d blitzdb -U blitz -f 019-5.18.0.sql
psql -d blitzdb -U blitz -f 020-5.20.0.sql
psql -d blitzdb -U blitz -f 021-5.21.0.sql
psql -d blitzdb -U blitz -f 022-5.23.0.sql
psql -d blitzdb -U blitz -f 023-5.26.0.sql
После выполнения скрипта необходимо настроить резервное копирование БД.
Шаг 4. RabbitMQ#
Опционально
Установка сервера очередей RabbitMQ опциональна и требуется, если сервер очередей будет использоваться для передачи событий в смежные системы или в качестве брокера сообщений.
Установить RabbitMQ согласно инструкции.
Выполнить команду:
apt-get install rabbitmq-server
После завершения установки запустить сервис:
systemctl start rabbitmq-server
Шаг 5. Blitz Identity Provider#
Для установки сервисов blitz-console
, blitz-idp
, blitz-registration
, blitz-recovery
используется единый установщик blitz-5.X.X.bin
.
При установке сертифицированной версии Blitz Identity Provider дополнительно используется файл blitz-idp-thirdparty-5.X.X.tar.gz
, содержащий архив с используемыми Blitz Identity Provider сторонними библиотеками.
Важно
Консоль управления можно установить на любой сервер, где установлен сервер Blitz Identity Provider, но рекомендуется выделить под установку консоли управления отдельный административный сервер. На сервере предварительно должны быть установлены JDK и memcached.
Для установки приложений blitz-console
, blitz-idp
, blitz-registration
, blitz-recovery
необходимо:
На предназначенные для установки сервера скопировать (например, в директорию
/tmp
) из дистрибутива Blitz Identity Provider файлblitz-5.X.X.bin
.В случае установки сертифицированной версии необходимо также скопировать
blitz-idp-thirdparty-5.X.X.tar.gz
.Запустить установщик
blitz-5.X.X.bin
, указав параметры запуска:-i
– список устанавливаемых приложений, разделенных через пробел (например,idp console registration recovery
);-j
– значениеJAVA_HOME
– директория, в которую на сервере установлен JDK.
Установка будет произведена в директорию
/usr/share/identityblitz
.cd /tmp chmod +x blitz-5.X.X.bin ./blitz-5.X.X.bin -- -j /opt/oracle/jdk -i "idp console recovery registration"
Verifying archive integrity... 100% MD5 checksums are OK. All good. Uncompressing Blitz IDP 100% **************************************************************** Application blitz-registration installed Application blitz-recovery installed Application blitz-console installed Application blitz-idp installed ****************************************************************
Создать файл
blitz_param.txt
, в котором задать первичные настройки Blitz Identity Provider:DOMAIN
– внешнее имя домена, на котором будет функционировать Blitz Identity Provider;ROOT_CONTEXT
– URL-путь, на котором будет функционировать Blitz Identity Provider;Примечание
Если параметр не указывать, то по умолчанию будет задан
/blitz
.ADMIN_USERNAME
– имя учетной записи администратора в Blitz Identity Provider;Примечание
Если параметр не указывать, то по умолчанию будет задан
admin
.ADMIN_PASSWORD
– пароль от учетной записи администратора в Blitz Identity Provider;KEYSTORE_PASSWORD
– пароль от создаваемого в процессе установки ключевого контейнера;Примечание
Если параметры
ADMIN_PASSWORD
иKEYSTORE_PASSWORD
не указывать, то эти пароли будут автоматически сгенерированы и выведены в результатах работы скрипта конфигурации.MEMCACHED_SERVERS
– адреса серверов сmemcached
;DB_MODE
– используемая СУБД:CB
для Couchbase Server;CB_NODES
– адреса серверов с СУБД Couchbase Server;CB_USERNAME
– имя учетной записи в СУБД Couchbase Server (по умолчаниюblitz
);CB_PASSWORD
– пароль от учетной записи в СУБД Couchbase Server;TRUSTED_SERVERS
– адреса подсетей серверов c сервисами Blitz Identity Provider (по умолчанию127.0.0.1/32
).DOMAIN=test MEMCACHED_SERVERS="192.168.122.10 127.0.0.1" DB_MODE=CB CB_NODES="192.168.122.20 192.168.122.21 192.168.122.22" CB_USERNAME=blitz CB_PASSWORD=12ABcd45
DOMAIN
– внешнее имя домена, на котором будет функционировать Blitz Identity Provider;ROOT_CONTEXT
– URL-путь, на котором будет функционировать Blitz Identity Provider;Примечание
Если параметр не указывать, то по умолчанию будет задан
/blitz
.ADMIN_USERNAME
– имя учетной записи администратора в Blitz Identity Provider;Примечание
Если параметр не указывать, то по умолчанию будет задан
admin
.ADMIN_PASSWORD
– пароль от учетной записи администратора в Blitz Identity Provider;KEYSTORE_PASSWORD
– пароль от создаваемого в процессе установки ключевого контейнера;Примечание
Если параметры
ADMIN_PASSWORD
иKEYSTORE_PASSWORD
не указывать, то эти пароли будут автоматически сгенерированы и выведены в результатах работы скрипта конфигурации.MEMCACHED_SERVERS
– адреса серверов сmemcached
;DB_MODE
– используемая СУБД:PG
для PostgreSQL;PG_HOSTNAME
– адрес СУБД PostgreSQL;PG_DB_NAME
– имя БД в СУБД PostgreSQL;Совет
Рекомендуется использовать
blitzdb
.PG_USERNAME
– имя учетной записи в СУБД PostgreSQL;Совет
Рекомендуется использовать
blitz
.PG_PASSWORD
– пароль от учетной записи в СУБД PostgreSQL;TRUSTED_SERVERS
– адреса подсетей серверов c сервисами Blitz Identity Provider (по умолчанию127.0.0.1/32
).DOMAIN=test ROOT_CONTEXT=/blitz MEMCACHED_SERVERS="127.0.0.1 192.168.122.96" DB_MODE=PG PG_HOSTNAME=192.168.122.20 PG_DB_NAME=blitzdb PG_USERNAME=blitz PG_PASSWORD=123456 TRUSTED_SERVERS="127.0.0.1/32 192.168.122.96/32 192.168.122.0/24" ADMIN_USERNAME=admin1 ADMIN_PASSWORD=0123456789 KEYSTORE_PASSWORD=0123456789
Запустить скрипт первоначальной настройки Blitz Identity Provider, указав путь к файлу
blitz_param.txt
:/usr/share/identityblitz/blitz-console/bin/configure -f blitz_param.txt
В результате выполнения скрипта будут настроены конфигурационные файлы, а также будет сгенерирован и показан логин/пароль администратора Blitz Identity Provider и сгенерирован пароль от ключевого контейнера:
**************************************************************** Your instance is configured on domain: test.loc The Administration Console available on addresses: http://testinstallation.local:9001/blitz/console Administration user credentials of Console: username - admin password - 98aAB0D3f2 Your can change user credentials at file - /usr/share/identityblitz/blitz-config/credentials Create keystore /usr/share/identityblitz/blitz-config/blitz-keystore.bks and generate: - JWS(RSA256) keypair - jws_rs256_rsa_default - AES(AES128) security key - jdbc Generated password for keystore: BeEBcd2239 ****************************************************************
Совет
Если при запуске установщика были допущены ошибки ввода, так что установка была проведена с неправильными параметрами, то можно воспользоваться следующей командой для удаления файлов, которые создал установщик, чтобы иметь возможность вновь провести установку начисто:
rm -rf /usr/share/identityblitz /etc/default/blitz-* /etc/blitz-* /var/log/identityblitz/ /lib/systemd/system/blitz-*
Добавить сервисы в автозапуск на соответствующих им серверах и запустить их:
systemctl enable blitz-console systemctl start blitz-console systemctl enable blitz-idp systemctl start blitz-idp systemctl enable blitz-registration systemctl start blitz-registration systemctl enable blitz-recovery systemctl start blitz-recovery
Шаг 6. Синхронизация файлов конфигурации#
Только для установки в кластере
При развертывании Blitz Identity Provider в кластере необходимо настроить синхронизацию конфигурации между серверами кластера Blitz Identity Provider:
Действия на сервере с консолью управления
Установить
rsync
иincron
:sudo yum install rsync incron
или (для Astra Linux Special Edition 1.6)
sudo apt install rsync incron
Переключиться в пользователя
blitz
:sudo su - blitz
Сгенерировать ssh-ключ командой (на все задаваемые утилитой вопросы рекомендуется выбрать ответы по умолчанию):
ssh-keygen
Прочитать и сохранить для дальнейшего использования публичный ssh-ключ:
cat /usr/share/identityblitz/.ssh/id_rsa.pub
Открыть настройки
incrontab
:incrontab -e
В открывшемся окне редактора вставить следующее:
/usr/share/identityblitz/blitz-config IN_MODIFY,IN_ATTRIB,IN_CREATE,IN_DELETE,IN_CLOSE_WRITE /usr/share/identityblitz/scripts/config_sync.sh ./ $# $% /usr/share/identityblitz/blitz-config/assets IN_MODIFY,IN_ATTRIB,IN_CREATE,IN_DELETE,IN_CLOSE_WRITE /usr/share/identityblitz/scripts/config_sync.sh assets $# $% /usr/share/identityblitz/blitz-config/assets/services IN_MODIFY,IN_ATTRIB,IN_CREATE,IN_DELETE,IN_CLOSE_WRITE /usr/share/identityblitz/scripts/config_sync.sh assets $# $% /usr/share/identityblitz/blitz-config/assets/themes IN_MODIFY,IN_ATTRIB,IN_CREATE,IN_DELETE,IN_CLOSE_WRITE /usr/share/identityblitz/scripts/config_sync.sh assets $# $% /usr/share/identityblitz/blitz-config/apps IN_MODIFY,IN_ATTRIB,IN_CREATE,IN_DELETE,IN_CLOSE_WRITE /usr/share/identityblitz/scripts/config_sync.sh apps $# $% /usr/share/identityblitz/blitz-config/saml IN_MODIFY,IN_ATTRIB,IN_CREATE,IN_DELETE,IN_CLOSE_WRITE /usr/share/identityblitz/scripts/config_sync.sh saml $# $% /usr/share/identityblitz/blitz-config/saml/conf IN_MODIFY,IN_ATTRIB,IN_CREATE,IN_DELETE,IN_CLOSE_WRITE /usr/share/identityblitz/scripts/config_sync.sh saml $# $% /usr/share/identityblitz/blitz-config/saml/credentials IN_MODIFY,IN_ATTRIB,IN_CREATE,IN_DELETE,IN_CLOSE_WRITE /usr/share/identityblitz/scripts/config_sync.sh saml $# $% /usr/share/identityblitz/blitz-config/saml/metadata IN_MODIFY,IN_ATTRIB,IN_CREATE,IN_DELETE,IN_CLOSE_WRITE /usr/share/identityblitz/scripts/config_sync.sh saml $# $% /usr/share/identityblitz/blitz-config/custom_messages IN_MODIFY,IN_ATTRIB,IN_CREATE,IN_DELETE,IN_CLOSE_WRITE /usr/share/identityblitz/scripts/config_sync.sh custom_messages $# $% /usr/share/identityblitz/blitz-config/custom_messages/dics IN_MODIFY,IN_ATTRIB,IN_CREATE,IN_DELETE,IN_CLOSE_WRITE /usr/share/identityblitz/scripts/config_sync.sh custom_messages $# $% /usr/share/identityblitz/blitz-config/devices IN_MODIFY,IN_ATTRIB,IN_CREATE,IN_DELETE,IN_CLOSE_WRITE /usr/share/identityblitz/scripts/config_sync.sh devices $# $% /usr/share/identityblitz/blitz-config/simple IN_MODIFY,IN_ATTRIB,IN_CREATE,IN_DELETE,IN_CLOSE_WRITE /usr/share/identityblitz/scripts/config_sync.sh simple $# $% /usr/share/identityblitz/blitz-config/certs IN_MODIFY,IN_ATTRIB,IN_CREATE,IN_DELETE,IN_CLOSE_WRITE /usr/share/identityblitz/scripts/config_sync.sh certs $# $% /usr/share/identityblitz/blitz-config/flows/login IN_MODIFY,IN_ATTRIB,IN_CREATE,IN_DELETE,IN_CLOSE_WRITE /usr/share/identityblitz/scripts/config_sync.sh flows $# $% /usr/share/identityblitz/blitz-config/flows/reg IN_MODIFY,IN_ATTRIB,IN_CREATE,IN_DELETE,IN_CLOSE_WRITE /usr/share/identityblitz/scripts/config_sync.sh flows $# $% /usr/share/identityblitz/blitz-config/flows/extIdps IN_MODIFY,IN_ATTRIB,IN_CREATE,IN_DELETE,IN_CLOSE_WRITE /usr/share/identityblitz/scripts/config_sync.sh flows $# $% /usr/share/identityblitz/blitz-config/token_exchange IN_MODIFY,IN_ATTRIB,IN_CREATE,IN_DELETE,IN_CLOSE_WRITE /usr/share/identityblitz/scripts/config_sync.sh token_exchange $# $% /usr/share/identityblitz/blitz-config/token_exchange/rules IN_MODIFY,IN_ATTRIB,IN_CREATE,IN_DELETE,IN_CLOSE_WRITE /usr/share/identityblitz/scripts/config_sync.sh token_exchange $# $%
Создать файл
/usr/share/identityblitz/scripts/config_sync.sh
и вставить в него скрипт:#!/bin/bash app_dir=/usr/share/identityblitz/blitz-config node_list="NODES_LIST" for node in $(echo "${node_list}"); do rsync -r -a --delete ${app_dir}/${1} ${USER}@${node}:${app_dir}; done
В качестве значения
node_list
, вместоNODES_LIST
, необходимо прописать списокhostname
узлов кластера Blitz (кроме узла консоли управления Blitz Console). Вписывать значения нужно через пробел. Например:node_list="app1.local app2.local"
Сделать файл
/usr/share/identityblitz/scripts/config_sync.sh
исполняемым:chmod +x /usr/share/identityblitz/scripts/config_sync.sh
Запустить
incrontab
, выполнив под пользователем root команду:systemctl enable incrond systemctl start incrond
Действия на остальных серверах Blitz Identity Provider
Установить
rsync
:sudo yum install rsync
или (для Astra Linux Special Edition 1.6)
sudo apt install rsync
Переключиться в пользователя
blitz
:sudo su - blitz
Выполнить следующий скрипт:
mkdir .ssh touch .ssh/authorized_keys chmod 700 .ssh chmod 640 .ssh/authorized_keys
Открыть файл
.ssh/authorized_keys
любым редактором, например, vim, и вставить публичный ssh-ключ, полученный ранее на сервере консоли управления Blitz Console.
Шаг 7. Веб-сервер#
В качестве веб-сервера рекомендуется использовать nginx или HAProxy.
nginx
Пример настроечного файла для nginx включен в дистрибутив Blitz Identity Provider – это файл blitz-idp.conf
из директории nginx
в архиве resources.zip
. Нужно скорректировать следующие блоки настроек, после чего загрузить файл на сервер с nginx (каталог /etc/nginx/conf.d
):
Скорректировать блок настроек балансировки:
upstream blitz-idp {
server [BLITZ-IDP-NODE-01]:9000 max_fails=3 fail_timeout=120;
server [BLITZ-IDP-NODE-02]:9000 max_fails=3 fail_timeout=120;
}
upstream blitz-reg {
server [BLITZ-REG-NODE-01]:9002 max_fails=3 fail_timeout=120;
server [BLITZ-REG-NODE-02]:9002 max_fails=3 fail_timeout=120;
}
upstream blitz-rec {
server [BLITZ-REC-NODE-01]:9003 max_fails=3 fail_timeout=120;
server [BLITZ-REC-NODE-02]:9003 max_fails=3 fail_timeout=120;
}
upstream blitz-console {
server [BLITZ-CONSOLE-NODE-01]:9001 max_fails=3 fail_timeout=120;
}
Параметры имеют следующие назначения:
[BLITZ-%%%-NODE-XX]
– имена (hostname
) серверов с сервисами Blitz Identity Provider (blitz-idp
,blitz-registration
,blitz-recovery
);[BLITZ-CONSOLE-NODE-01]
– имя (hostname
) сервера с Blitz Console.
Скорректировать блок настроек терминирования TLS:
ssl_certificate [BLITZ-SSL-CERT-FILE];
ssl_certificate_key [BLITZ-SSL-PRIVATEKEY-FILE];
Параметры имеют следующие назначения:
[BLITZ-SSL-CERT-FILE]
– путь (полное имя) к файлу с TLS-сертификатом сервера;[BLITZ-IDP-CONSOLE-NODE-01]
– путь (полное имя) к файлу с TLS-ключом сервера.
Следует учесть, что Blitz Identity Provider игнорирует заголовок
X-Forwarded-Proto https
, если в nginxX-Forwarded-For
содержит более одного IP-адреса, например:
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
В этом случае рекомендуется использовать следующее значение директивы:
proxy_set_header X-Forwarded-For $client_ip
При этом client_ip
вычисляется с помощью map
. Из списка всегда всегда берется первое значение:
map $http_x_forwarded_for $client_ip {
default $remote_addr;
"~(?<IP>([0-9]{1,3}\.){3}[0-9]{1,3})*" $IP;
"~(?<IP>([0-9]{1,3}\.){3}[0-9]{1,3}),.*" $IP;
}
Скопировать на сервер nginx в папку
/usr/share/nginx/html
папкуstatic_errors
с файлами страниц отображения ошибок сервера. Файлы с примерами оформления страниц ошибок можно взять в дистрибутиве Blitz Identity Provider – это папкаstatic_errors
в архивеresources.zip
.
HAProxy
Пример настроечного файла для HAProxy включен в дистрибутив Blitz Identity Provider – это файл haproxy.cfg
из директории haproxy
в архиве resources.zip
. Конфигурационный файл рассчитан на HAProxy версии 2.2+, поскольку в блоке используются директивы http-errors
, errorfile
, errorfiles
для переопределения использования страниц ошибок из поставки Blitz Identity Provider.
Ограничение - статический контент, в отличие от nginx, HAProxy не поддерживаются. Изображения, favicon и т.п. необходимо подгружать с отдельного сервера. За это отвечает правило acl is-blitz-static
, маршрут use_backend blitz-static if is-blitz-static
и backend blitz-static
.
Блок global
- определяет системные параметры (пользователь, от имени которого выполняется процесс, параметры логирования, разрешенные алгоритмы шифрования и т.д.).
Секция defaults
- определяет общие параметры для следующих за ним секций.
Секция frontend
- определяет правила обработки входящих запросов.
Секция backend
- описывает сервера которым будут перенаправлены запросы.
Основной интерес представляют секции backend с включенными активными проверками:
Запустить алгоритм балансировки:
balance roundrobin
Включить http-проверки backend:
option httpchk
Произведение начала сценария проверки.
Открыть новое соединение:
http-check connect
Отправить get-запрос к лк:
http-check send meth GET uri /blitz/profile hdr Host rocky8
Проверить установку сессионной cookie blc:
http-check expect hdr name set-cookie value -m beg "blc="
Проверить наличие редиректа:
http-check expect status 303
Появятся записи для каждого сервера приложений. Интервал проверки сервера составляет 5 секунд. В случае 2-х ошибок подряд пометить, как недоступный. После 1-ой успешной проверки пометить, как доступный.
Контролировать поток ошибок на уровне l7. Если возникнет более 10-ти ошибок, тогда пометить, как недоступный. При успешном health-check будет отмечен, как доступный.
Ввести в балансировку постепенно за 10с:
server blitz-idp-local 127.0.0.1:9000 check inter 5s rise 1 fall 2 observe layer7 error-limit 10 on-error mark-down slowstart 10s
Шаг 8. LDAP-каталог#
Опционально
См.также
В случае необходимости развертывания нового LDAP-каталога рекомендуется в качестве LDAP-каталога использовать 389 Directory Server, который входит в состав ОС:
Выполнить команды установки:
yum install 389-ds-base 389-adminutil 389-admin 389-admin-console 389-console 389-ds-console yum install xauth
Установить
limits
в соответствии с рекомендациями 389 Directory Server:echo "fs.file-max = 64000" >> /etc/sysctl.conf echo "* soft nofile 8192" >> /etc/security/limits.conf echo "* hard nofile 8192" >> /etc/security/limits.conf echo "ulimit -n 8192" >> /etc/profile
Инициализировать LDAP-каталог. Ответить на вопросы установщика:
setup-ds-admin.pl
После завершения установки добавить LDAP-каталог в автозапуск и запустить сервис:
systemctl enable dirsrv.target systemctl start dirsrv.target
Выполнить команду установки и скрипт инициализации каталога:
apt-get install 389-ds-base setup-ds
После завершения установки добавить LDAP-каталог в автозапуск и запустить сервис:
systemctl enable dirsrv.target systemctl start dirsrv.target
После установки 389 Directory Server выполнить его настройку для подготовки использования совместно с Blitz Identity Provider. Для этого:
Скопировать на LDAP-сервер конфигурационные скрипты LDAP из состава дистрибутива Blitz Identity Provider (это папка
ldap
в архивеresources.zip
).Выполнить скрипт первоначальной настройки
ldap_init.sh
– скрипт создаст веткуsub
для хранения пользователей, сервисного пользователяreader
, настроит права доступа пользователя и его парольную политику (бессрочный пароль для сервисного пользователя), создаст классblitz-schema
с атрибутамиuid
,mail
,mobile
,sn
,name
:chmod +x ldap_init.sh ./ldap_init.sh
Выполнить скрипт настройки TLS на сервере LDAP (скрипт создает копию текущей
NSS DB
, затем создает новуюNSS DB
, сертификаты и файлpin.txt
для запуска сервера без ввода пароля):chmod +x ldap_ssl.sh ./ldap_ssl.sh
После выполнения скрипта перезапустить LDAP-каталог:
systemctl restart dirsrv.target
Если требуется настроить и включить глобальные парольные политики в LDAP, то скорректировать и выполнить скрипт
ldap_pwdpolicy.sh
:chmod +x ldap_pwdpolicy.sh ./ldap_pwdpolicy.sh
Если требуется создать дополнительные атрибуты:
подготовить текстовый файл, в котором на каждой строке привести имя создаваемого атрибута (т.е. текстовый файл со столбцом создаваемых атрибутов);
выполнить скрипт создания дополнительных атрибутов, ответить на его вопросы:
chmod +x ldap_add_attr.sh ./ldap_add_attr.sh
отредактировать текстовый файл по адресу
/etc/dirsrv/slapd-<название инстанса>/schema/99user.ldif
, добавить новые атрибуты вobjectclass
с именемblitz-schema
в разделMAY
;перезапустить LDAP-каталог, чтобы применить изменения схемы каталога:
systemctl restart dirsrv.target