Перейти к основному содержимому
Версия: Indeed Access Manager 9.2

Установка Access Manager на нескольких хостах

Информация

Прежде чем перейти к установке Access Manager на нескольких хостах, рекомендуется сначала установить и настроить Access Manager на одном хосте.

  1. После успешной установки на одном хосте создайте архивную копию каталога с установленным Access Manager и переместите архив на все хосты, где планируется установка компонентов продукта.

  2. Распакуйте архив и на каждом хосте внесите все изменения, описанные далее.

  3. Перед запуском скриптов ограничьте права запуска для всех пользователей системы, не имеющих прав sudo. Для этого, находясь в каталоге ssl, выполните команду sudo chmod 400 *.sh.

  4. Выполните запуск скриптов 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

  5. Откройте файл 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 — внешний порт.
  6. (Опционально) При установке Indeed Key Server откройте конфигурационный файл am/indeed-key/app-settings.json на хосте с Key Server и задайте параметры:

    • ConnectionString — строка подключения к базе данных,
    • Url — внешний адрес Key Server,
    • TrustedClients — произвольный уникальный идентификатор. Этот идентификатор необходим для подтверждения удаления аутентификатора Indeed Key. Значение идентификатора должно совпадать со значением, указанным в серверных настройках аутентификатора Indeed Key в Management Console.
  7. Внесите изменения в файл am/haproxy.docker-compose.yml. Необходимо удалить или закомментировать зависимость от сервисов, которые не будут установлены на текущем хосте.

    Пример
     depends_on:
    - core
    - idp
    #- mc
    #- uc
    - ls
    #- indeed-key # Remove if Indeed Key server not needed
  8. Внесите изменения в конфигурационный файл 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
  9. Выполните настройку прав пользователя.

  10. Для создания и запуска контейнера с серверными компонентами, выполните следующую команду:

    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