Общая инструкция по установке#
В общем случае установка Blitz Identity Provider выполняется в следующей последовательности:
Установить и настроить сервер очередей RabbitMQ Опционально.
Установить консоль управления и другие сервисы Blitz Identity Provider.
Настроить синхронизацию конфигурационных файлов Только для установки в кластере.
Настроить внешнее хранилище учетных записей Опционально.
Совет
В зависимости от используемой операционной системы есть своя специфика по установке необходимого окружения. Для удобства воспользуйтесь экспресс-инструкциями для отечественных и зарубежных ОС.
Важно
Перед развертыванием ознакомьтесь с архитектурой развертывания Blitz Identity Provider.
Установка JDK#
На серверах, предназначенных для установки ПО сервера Blitz Identity Provider и административной консоли Blitz Identity Provider, необходимо установить и настроить JDK 8, используя один из следующих продуктов:
OpenJDK 8 Рекомендуется для сертифицированной версии Blitz;
Liberica JDK 8;
Axiom JDK 8 Certified Рекомендуется для сертифицированной версии Blitz;
Oracle JDK 8.
Установка OpenJDK 8 в CentOS и RHEL
Выполнить команду:
sudo yum install java-1.8.0-openjdk-devel
Установка Liberica JDK 8 в Astra Linux Special Edition 1.6
Загрузить дистрибутив Liberica JDK 8 с сайта производителя.
Выполнить команду:
pkg -i bellsoft-jdk8u252+9-linux-amd64.deb
Открыть на редактирование файл
java.security
в директории/usr/lib/jvm/bellsoft-java8-amd64/jre/lib/security
.Раскомментировать (или добавить) строку:
crypto.policy=unlimited
Установка Axiom JDK 8 Certified в Astra Linux Special Edition 1.7
Загрузить дистрибутив Axiom JDK 8 Certified с сайта производителя.
Выполнить команду:
dpkg -i bellsoft-jdk-certified8u322+7-linux-amd64-astra.deb
Открыть на редактирование файл
java.security
в директории/usr/lib/jvm/bellsoft-java8-amd64/jre/lib/security
.Раскомментировать (или добавить) строку:
crypto.policy=unlimited
Установка и настройка Oracle JDK 8
Загрузить дистрибутив Oracle JDK 8 в виде архива tar.
Скопировать загруженный дистрибутив на сервера (например, в директорию
/tmp
).Создать директорию под установку Oracle JDK 8:
mkdir -p /opt/oracle/jdk/
Распаковать в созданную директорию дистрибутив Oracle JDK 8:
tar xf /tmp/jdk-8uXXX-linux-x64.tar.gz -C /opt/oracle/jdk/
Если версия Oracle JDK 1.8.0_151 и выше:
Открыть на редактирование файл
java.security
в директории/opt/oracle/jdk/jdk1.8.0_XXX/jre/lib/security
.Раскомментировать (или добавить) строку:
crypto.policy=unlimited
Если версия Oracle JDK 1.8.0_144 и ниже:
Загрузить дистрибутив Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 8.
Скопировать загруженный дистрибутив на сервера (например, в директорию
/tmp
).Распаковать архив и скопировать содержимое в директорию с установленным Oracle JDK 8:
cd /tmp unzip jce_policy-8.zip cp UnlimitedJCEPolicyJDK8/*.jar /opt/oracle/jdk/jdk1.8.0_XXX/jre/lib/security/
Установка memcached#
Внимание
Версия memcached
должна быть 1.4.15 или выше. Сервис memcached должен быть установлен на серверах, предназначенных для установки сервисов Blitz Identity Provider: blitz-console
, blitz-idp
, blitz-registration
, blitz-recovery
. Для сервиса blitz-keeper
сервис memcached
не нужен.
Выполнить команду:
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.
Установка и настройка СУБД#
Установка 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
После выполнения скрипта необходимо настроить резервное копирование БД.
Установка и настройка сервера очередей RabbitMQ#
Установка сервера очередей RabbitMQ опциональна и требуется, если сервер очередей будет использоваться для передачи событий в смежные системы или в качестве брокера сообщений.
Установить RabbitMQ согласно инструкции.
Выполнить команду:
apt-get install rabbitmq-server
После завершения установки запустить сервис:
systemctl start rabbitmq-server
Установка сервисов Blitz Identity Provider#
Для установки сервисов blitz-console
, blitz-idp
, blitz-registration
, blitz-recovery
используется единый установщик blitz-5.X.X.bin
. Для установки сервиса blitz-keeper
используется свой установщик blitz-keeper-5.X.X.bin
. При установке сертифицированной версии Blitz Identity Provider дополнительно используются файлы blitz-idp-thirdparty-5.X.X.tar.gz
и blitz-keeper-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/lib/jvm/bellsoft-java8-amd64
/usr/lib/jvm/java-1.8.0-openjdk
/opt/oracle/jdk
Установка будет произведена в директорию
/usr/share/identityblitz
.Пример запуска установщика#cd /tmp chmod +x blitz-5.X.X.bin ./blitz-5.X.X.bin -- -j /usr/lib/jvm/bellsoft-java8.x86_64 -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_USER_NAME
– имя учетной записи администратора в Blitz Identity Provider;Примечание
Если параметр не указывать, то по умолчанию будет задан
admin
.ADMIN_PASSWORD
– пароль от учетной записи администратора в Blitz Identity Provider;KEYSTORE_PASSWORD
– пароль от создаваемого в процессе установки ключевого контейнера;Примечание
Если параметры
ADMIN_PASSWORD
иKEYSTORE_PASSWORD
не указывать, то эти пароли будут автоматически сгенерированы и выведены в результатах работы скрипта конфигурации.MEMCACHED_SERVERS
– адреса серверов сmemcached
;DB_MODE
– используемая СУБД:PG
для PostgreSQL (Jatoba),CB
для Couchbase Server;PG_HOSTNAME
– адрес СУБД PostgreSQL;PG_DB_NAME
– имя БД в СУБД PostgreSQL;Совет
Рекомендуется использовать
blitzdb
.PG_USER_NAME
– имя учетной записи в СУБД PostgreSQL;Совет
Рекомендуется использовать
blitz
.PG_USER_PASSWORD
– пароль от учетной записи в СУБД PostgreSQL;CB_NODES
– адреса серверов с СУБД Couchbase Server;CB_USERNAME
– имя учетной записи в СУБД Couchbase Server (по умолчаниюblitz
);CB_ PASSWORD
– пароль от учетной записи в СУБД Couchbase Server.Пример конфигурационного файла в зависимости от СУБД:
DOMAIN=test.loc MEMCACHED_SERVERS="192.168.122.10 127.0.0.1" DB_MODE=PG PG_HOSTNAME=127.0.0.1 PG_DB_NAME=blitzdb PG_USER_NAME=blitz PG_USER_PASSWORD=12ABcd45
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
Запустить скрипт первоначальной настройки Blitz Identity Provider, указав путь к файлу
blitz_param.txt
:/usr/share/identityblitz/blitz-console/bin/configure -f blitz_param.txt
В результате выполнения скрипта будут настроены конфигурационные файлы, а также будет сгенерирован и показан логин/пароль администратора Blitz Identity Provider и сгенерирован пароль от ключевого контейнера:
**************************************************************** Your Blitz Identity Provider configured on domain: test.loc Your Blitz Identity Provider Console available on addresses: http://test.loc:9001/blitz/console Administration user credentials of Blitz 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-*
Отредактировать блок
blitz.prod.local.idp.net
, добавив в настройкуtrustedServers
адреса подсетей серверов приложений Blitz Identity Provider:"net" : { "domain" : "blitz-domain.com", "trustedServers" : [ "192.168.1.0/24" ] }
Если планируется использовать функцию защиты REST-сервисов с помощью Blitz Identity Provider, то скопировать на предназначенные для установки шлюза безопасности сервера (например, в директорию
/tmp
) из дистрибутива Blitz Identity Provider файлыblitz-keeper-5.X.X.bin
иblitz-keeper-thirdparty-5.X.X.tar.gz
(только в случае установки сертифицированной версии).Запустить установщик
blitz-keeper-5.X.X.bin
:cd /tmp chmod +x blitz-keeper-5.X.X.bin ./blitz-keeper-5.X.X.bin
В ответ на запросы установщика задать:
Значение
JAVA_HOME
– задать директорию, в которую на сервере установлен JDK:/usr/lib/jvm/bellsoft-java8-amd64
/usr/lib/jvm/java-1.8.0-openjdk
/opt/oracle/jdk
Путь к файлу
blitz-keeper-thirdparty-5.X.X.tar.gz
(только для сертифицированной версии).
Установка будет произведена в директорию
/usr/share/identityblitz
.Добавить сервисы в автозапуск на соответствующих им серверах и запустить их:
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 systemctl enable blitz-keeper systemctl start blitz-keeper
Настройка синхронизации файлов конфигурации#
При развертывании Blitz Identity Provider в кластере необходимо настроить синхронизацию конфигурации Blitz Identity Provider между серверами кластера Blitz Identity Provider:
Действия на сервере с консолью управления Bitz Identity Provider Console
Установить
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.
Настройка веб-сервера#
В качестве веб-сервера рекомендуется использовать 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-keeper { server [BLITZ-KPR-NODE-01]:9012 max_fails=3 fail_timeout=120; server [BLITZ-KPR-NODE-02]:9012 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-keeper
);[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-адреса. Следует также учесть, что при использовании директивы nginx:proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
В этом случае рекомендуется использовать следующее значение директивы:
proxy_set_header X-Forwarded-For $remote_addr;
Скопировать на сервер nginx в папку
/usr/share/nginx/html
папкуstatic_errors
с файлами страниц отображения ошибок сервера. Файлы с примерами оформления страниц ошибок можно взять в дистрибутиве Blitz Identity Provider – это папкаstatic_errors
в архивеresources.zip
.
Установка и настройка 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