Обновление FAM Server Avanpost FAM/MFA+


Общая часть

Не следует обновлять FAM самостоятельно, если установлена кастомизированная версия продукта. Для обновления такой версии следует обратиться в техническую поддержку продукта. Перед обновлением обязательно сделать бекап базы данных, файла key.dat и конфигурационного файла или всего сервера, если это удобнее. 

Информация

encryptionKey = ‘key.dat’ – критически важный файл. Отвечает за расшифровку подключения к БД. Если переносится база, то переносится и сам файл. Если файл удалён, то придётся создать новую базу.

Важно

При обновлении важно понимать, что версия используемой базы данных должна равняться версии исполняемого файла FAM и папки public (в ней находятся шаблоны конкретной версии, которые также изменяются). 

Если базу привели к состоянию на момент существования до обновления, нужно будет привести и исполняемые файлы к четкому соответствию.

Пример:

  • Если нужно установить версию продукта 1.8: восстановить исполняемые файлы на версию, существующую в бекапе базы данных, затем снова восстановить базу данных для версии 1.8. 
  • Если нужно установить версию продукта 1.10: необходимо восстановить базу данных к версии 1.8 и обновиться стандартным методом (при помощи команд migratedb и init). Только после этого следует запускать службу сервера.

Важно

Если используется конфигурация сети с установкой двух серверов (отказоустойчивый кластер), то перед выполнением следует остановить службу на обоих серверах. Затем на одном выполнить инструкцию целиком последовательно, а на втором обновить только файлы, не выполняя миграцию БД (шаги 5 и 6 данной инструкции). Затем запустить службу на обоих серверах.

Начиная с версии FAM Server 1.15 и выше, механизм подключения основного серверного компонента к базе данных предполагает обязательный запуск NATS-сервера. Данный NATS-сервер предназначен исключительно для подключения развернутого экземпляра FAM Server и не нуждается в дополнительной кластеризации (не рекомендуется использование единого экземпляра внутреннего NATS-сервера для нескольких узлов FAM Server). Поэтому при обновлении до FAM Server версии 1.15+ с версии 1.14.13 и ниже требуется настроить секцию [nats] конфигурационного файла, содержащую информацию для подключения FAM Server к внутреннему NATS-серверу. NATS-сервер, настроенный в конфигурационном файле, будет запущен автоматически совместно с FAM Server.

Обновление версий

Для обновления следует произвести следующие действия от имени пользователя idp:

  1. Скачать новую версию FAM Server по ссылке: Sonatype Nexus Repository.
  2. Остановить службу idp следующей командой:
    sudo systemctl stop idp
  3. Перед обновлением удалить папку public (расположена по пути /opt/idp/public), следующей командой:
    sudo rm -r /opt/idp/public

    Так как после обновления Avanpost FAM Server ранее настроенные шаблоны удаляются, для обновленной системы требуется провести повторную кастомизацию. Рекомендуется выполнять повторную кастомизацию в следующем порядке:

    1. Скопировать данные public, чтобы иметь возможность обратиться к ранее проведенным настройкам.
    2. Настроить кастомизацию на тестовом стенде с той же версией, до которой осуществлено обновление, и убедиться, что система работает корректно.
    3. Настроить шаблоны для обновленной версии продукта, копируя шаблоны с тестового стенда

    Дополнительную информацию о настройке внешнего вида Avanpost FAM можно найти в разделе Настройка внешнего вида.

  4. Скопировать с заменой файлы из скачанного архива в /opt/idp/ (вместо avanpost_fam_server-* следует подставить имя архива):
    sudo tar -C /opt/idp -xvzf /path_to_tar_file/avanpost_fam_server-*.linux.tar.gz
  5. Если используется версия FAM ниже 1.16, то, находясь в каталоге /opt/idp/ , следует выполнить миграцию БД командой (начиная с версии 1.16 миграция выполняется автоматически после каждого запуска):
    ./fam_linux_amd64 -migratedb postgres

    По завершении миграции пользователю будет выдано сообщение "Successfully migrate database". Если данное сообщение сообщение выдано, значит миграция прошла успешно вне зависимости от выданных до данного сообщения ошибок и зависящих от настроек FAM Server.

  6. Для версий FAM ниже 1.16 после сообщения об успешном завершении миграции требуется выполнить команду инициализации (начиная с версии 1.16 инициализация выполняется автоматически):
    ./fam_linux_amd64 -init

    По завершении инициализации пользователю будет выдано сообщение "lk-client application was successfully created". Если данное сообщение сообщение выдано, значит инициализация прошла успешно вне зависимости от выданных до данного сообщения ошибок.

  7. Запустить службу на сервере FAM.
    sudo systemctl start idp

      8. При переходе на новый формат конфигурационного файла FAM с json на toml в файле службы idp.service (стандартный путь /etc/systemd/system/idp.service) также необходимо удалить строку для переменной Environment (можно указать новое расширение файла или удалить строку целиком).

Для правильной работы MFA+FAM необходимо обновить и FAM Mobile Services. Версия FAM Mobile Services должна быть идентична версии FAM Server. После обновления версии также нужно включить параметр backgroundTasks = true, для выполнения корректной синхронизации LDAP и работы с мобильными сервисами (фактор Avanpost Authenticator).

Информация

В случае возникновения ошибок с Base Url, в /opt/idp/config.toml замените base_url на baseUrl.

Приложение А. Создание новой БД при проблемах с файлом key.dat

При удалении или изменении ключа шифрования файла key.dat следует:

  1. Зайти в интерактивный терминал PostgreSQL.
    sudo -u postgres psql
  2. Удалить старую базу данных.
    DROP DATABASE idp
  3. Создать новую базу данных.
    CREATE DATABASE idp OWNER=avanpost ENCODING=utf8;
  4. Выйти из терминала.
  5. Создать новый ключ шифрования.
    ./fam_linux_amd64 -generatekey
  6. Произвести миграцию базы данных.
    ./fam_linux_amd64 -migratedb postgres
  7. Инициализировать приложение (начиная с версии 1.16 инициализация выполняется автоматически):
    ./fam_linux_amd64 -init

Обсуждение