Установка FAM Server через Docker Compose с Nginx

4.2.4. Установка FAM Server в варианте минимальной инсталляции через Docker Compose с Nginx


Общие сведения

Установка Avanpost FAM Server через Docker Compose позволяет быстро развернуть продукт в контейнеризированном окружении с минимальными затратами на настройку инфраструктуры. Данный метод рекомендуется для тестовых сред, демонстрационных стендов и сценариев, где требуется изоляция компонентов системы. В инструкции описан вариант минимальной инсталляции с использованием Nginx в качестве обратного прокси-сервера, что обеспечивает базовую безопасность и возможность дальнейшей интеграции с внешними приложениями посредством стандартных протоколов (OpenID Connect, SAML, RADIUS).

Требования к окружению:

  1. Git (версия 2.20 и выше) 
  2. Docker:
    1. Windows:
    2. Linux:
    3. Docker Compose:

Настройка FAM Server

Первый запуск FAM Server необходимо осуществлять следующим образом:

  1. Клонировать репозиторий с docker compose, используя команду:
    git clone https://devenv.avanpost.ru/docker/idp-compose.git
  2. В файле .env указать путь к volumes (по умолчанию используется путь "текущая директория/volumes").
  3. Запустить контейнер c базой данных:
    docker compose up -d postgres
  4. Для смены адреса и/или настройки TLS (по умолчанию используется http://idp.avanpost.local) требуется:
    1. Отредактировать конфигурационный файл volumes/conf/config.toml, поменяв URL в основной секции и секции [adminconsole] на актуальный для администратора по аналогии с примером:
      baseUrl = 'http://idp.avanpost.local'
      ...
      [adminconsole]
      baseUrl = 'http://idp.avanpost.local
    2. Отредактировать конфигурационный файл volumes/conf.d/idp.conf, yказав в секции "server" необходимый адрес.
    3. При необходимости использования TLS следует разместить в папке volumes/conf.d ключ и сертификат, и внести настройки в файл volumes/conf.d/idp.conf.
  5. Добавить файл лицензии в volumes/conf/license.jwt.
  6. Запустить контейнер c Angie/Nginx:
    docker compose up -d web
  7. Добавить файлы сертификата и ключа в volumes/conf/ или сгенерировать командой:
    docker compose run --rm --entrypoint "openssl req -newkey rsa:2048 -new -nodes -x509 -days 365 -keyout /conf/idp.key -out /conf/idp.crt" idp
  8. Для генерации ключа шифрования key.dat выполнить команду:
    docker compose run --rm --entrypoint "/fam/avanpost_fam_linux_amd64 -generatekey" idp
  9. Убедиться, что миграция прошла успешно:
    • Для версий продукта 1.16 и выше миграция осуществляется автоматически и не требует дополнительных действий.
    • Для версий продукта ниже 1.16 для развертывания БД и осуществления миграции требуется выполнить следующую команду:
      docker compose run --rm --entrypoint "/fam/avanpost_fam_linux_amd64 -generatekey" idp
  10. Убедиться, что инициализация прошла успешно:
    1. Для версий продукта 1.16 и выше инициализация осуществляется автоматически и не требует дополнительных действий.
    2. Для версий продукта ниже выполнит команду:
      docker compose run --rm --entrypoint "/fam/avanpost_fam_linux_amd64 -init" idp
  11. Создать пользователя администратора
    1. Для версий продукта 17.2 и выше использовать утилиту famctl:
      docker run --rm \
        --network idp-compose_vpcbr \ 
        -e MCP=true \
        -e FAM_ADMIN_NAME=admin \
        -e FAM_ADMIN_PWD="Avanp0st!" \
        -e FAM_CONNECTION_STRING="postgres://username:password@postgres:5432/dbname" \
        registry.avanpost.ru/access/famctl:latest
      ПараметрЗначение

      network

      Имя сети Docker Compose (по умолчанию: idp-compose_vpcbr)

      MCP

      Флаг обязательной смены пароля после первой успешной аутентификации администратора (также вместо данного параметра допускается использовать флаг MUST_CHANGE_PASSWORD). 

      FAM_ADMIN_NAME

      Логин администратора

      FAM_ADMIN_PWD

      Пароль администратора

      FAM_CONNECTION_STRING

      Строка подключения к базе данных PostgreSQL
    2. Для более ранних версий продукта использовать команды:
      1. Создать пользователя: 
        docker compose run --rm --entrypoint "/fam/avanpost_fam_linux_amd64 -createuser admin:Avanp0st" idp
      2. Назначить созданному пользователю системную роль администратора:
        docker compose run --rm --entrypoint "/fam/avanpost_fam_linux_amd64 -assignrole admin -user admin" idp
  12. Запустить контейнер IDP:
    docker compose up -d idp
  13. Добавить доменное имя (параметр baseURL, введенный в п.4 настоящей инструкции) в DSN-сервер или прописать в hosts на узлах, с которых будут обращения к FAM.

При запуске FAM Server в консоль будет выведена версия продукта.



Обсуждение