Установка Access Manager на нескольких хостах
Прежде чем перейти к установке Access Manager на нескольких хостах, рекомендуется сначала установить и настроить Access Manager на одном хосте.
После успешной установки на одном хосте создайте архивную копию каталога с установленным Access Manager и переместите архив на все хосты, где планируется установка компонентов продукта.
Распакуйте архив и на каждом хосте внесите все изменения, описанные далее.
Перед запуском скриптов ограничьте права запуска для всех пользователей системы, не имеющих прав
sudo
. Для этого, находясь в каталоге ssl, выполните командуsudo chmod 400 *.sh
.Выполните запуск скриптов convertPfxForReverseProxy.sh и prepareCaFile.sh с использованием сертификата <серверный сертификат>.pfx, выписанного на DNS-имя текущего хоста:
sudo bash ./convertPfxForReverseProxy.sh -f <серверный сертификат>.pfx -p <пароль>
(Опционально) При установке Indeed Key Server выполните запуск следующего скрипта. В результате запуска создается серверный сертификат am/ssl/https/reverse_proxy_server_ik.pem, предоставляющий HAProxy для внешних клиентов к Indeed Key Server.
sudo bash ./convertPfxForReverseProxy_ik_external.sh -f <серверный сертификат>.pfx -p <пароль>
sudo bash ./prepareCaFile.sh
Откройте файл am/.env и внесите следующие изменения в переменные окружения:
В переменной
COMPOSE_PROFILES
укажите провайдеры аутентификации, которые вы планируете установить на текущем хосте. Список обозначений для провайдеров смотрите в таблице Переменные окружения.ВажноУстановка провайдеров возможна только на одном хосте с серверным компонентом Core Server.
Измените значение переменной
ENDPOINT_NAME_THIS_HOST
. При установке Access Manager на нескольких хостах компонент HAProxy устанавливается на каждом хосте, поэтому в переменнойENDPOINT_NAME_THIS_HOST
необходимо указать DNS-имя текущего хоста.На каждом используемом хосте измените значения всех переменных
ENDPOINT_NAME_<компонент>
в зависимости от того, на каких хостах установлены компоненты.(Опционально) При установке Indeed Key Server задайте значения переменных на каждом используемом хосте:
INDEED_KEY_EXTERNAL_ENDPOINT_NAME
— внешний адрес, по которому будет доступно приложение Indeed Key,INDEED_KEY_HTTPS_PORT
— внутренний порт,INDEED_KEY_HTTPS_PORT_EXTERNAL
— внешний порт.
(Опционально) При установке Indeed Key Server откройте конфигурационный файл am/indeed-key/app-settings.json на хосте с Key Server и задайте параметры:
ConnectionString
— строка подключения к базе данных,Url
— внешний адрес Key Server,TrustedClients
— произвольный уникальный идентификатор. Этот идентификатор необходим для подтверждения удаления аутентификатора Indeed Key. Значение идентификатора должно совпадать со значением, указанным в серверных настройках аутентификатора Indeed Key в Management Console.
Внесите изменения в файл am/haproxy.docker-compose.yml. Необходимо удалить или закомментировать зависимость от сервисов, которые не будут установлены на текущем хосте.
Пример
depends_on:
- core
- idp
#- mc
#- uc
- ls
#- indeed-key # Remove if Indeed Key server not neededВнесите изменения в конфигурационный файл am/haproxy/haproxy.cfg.
Удалите или закомментируйте строки с параметрами, относящимися к серверным компонентам, которые вы не планируете устанавливать на текущем хосте:
Строки с параметром
acl
, в которых упоминаются серверные компоненты.acl path-ls path_beg -i /ls
acl path-idp path_beg -i /am/idp
acl path-mc path_beg -i /am/mc
acl path-uc path_beg -i /am/uc
acl path-core path_beg -i /am/core
acl path-sms-proxy path_beg -i /am/proxies/smsВ параметре
http-request reject unless
удалите не используемые на данном хосте компоненты и лишние разделители||
.http-request reject unless path-core || path-idp || path-mc || path-uc || path-ls || path-sms-proxy
Строки с параметром
use_backend
.use_backend LS_Backend if path-ls
use_backend IDP_Backend if path-idp
use_backend MC_Backend if path-mc
use_backend UC_Backend if path-uc
use_backend CORE_Backend if path-core
use_backend Sms_Proxy_Backend if path-sms-proxyСтроки с адресами компонентов в параметре
backend <серверный_компонент>_Backend
.backend CORE_Backend
server docker core:5443 check inter 5000ms ssl verify required ca-file trusted_ca.crt
backend MC_Backend
server docker mc:5443 check inter 5000ms ssl verify required ca-file trusted_ca.crt
backend UC_Backend
server docker uc:5443 check inter 5000ms ssl verify required ca-file trusted_ca.crt
backend IDP_Backend
server docker idp:5443 check inter 5000ms ssl verify required ca-file trusted_ca.crt
Выполните настройку прав пользователя.
Для создания и запуска контейнера с серверными компонентами, выполните следующую команду:
sudo docker-compose up -d
Опциональные настройки безопасности
В некоторых сценариях можно ограничить доступ к любому серверному компоненту Access Manager, оставив только доступ в пределах Docker-сети. Для этого удалите соответствующие строки в конфигурационном файле am/haproxy/haproxy.cfg (шаг 8).
В таком случае этот компонент должен быть доступен в пределах Docker-сети для остальных компонентов, которые требуют соединения. При таком сценарии в переменных ENDPOINT_NAME_<компонент>
следует задать имя контейнера с указанием порта 5443.
Пример
ENDPOINT_NAME_CORE=core:5443
ENDPOINT_NAME_LS=ls:5443