Avanpost FAM/MFA+ : 13.1 Установка и обновление FAM

Проблемы с установкой, ошибки после установки, обновление продукта

Ошибка при запуске FAM

Проблема

При запуске сервиcа fam выдает ошибку:

panic: error reading server configuration: open ./config.json: no such file or directory

goroutine 1 [running]:
Sign in · GitLab 1({0x1e2c5a0, 0xc0002df700})
/home/jenkins/workspace/SSO/Server/master/pkg/product/runner/runner.go:381 +0x2afe
main.main()
/home/jenkins/workspace/SSO/Server/master/cmd/fam/main.go:15 +0x157


0

Решение


"panic: error reading server configuration: open ./config.json: no such file or directory":**

Строка выше означает то, что FAM не может найти /config.json.
Необходимо проверить настройки сервиса:

sudo nano /etc/systemd/system/idp.service

Также необходимо обратить внимание на значение Environment:
Environment=“SSO_CFG=/opt/idp/config.toml”

[Unit]
Description=IDP

[Service]
WorkingDirectory=/opt/idp
ExecStart=/opt/idp/fam_linux_amd64
Restart=always
RestartSec=10
SyslogIdentifier=idp
User=idp
Environment=“SSO_CFG=/opt/idp/config.toml”

[Install]
WantedBy=multi-user.targe

В значение необходимо указать абсолютный путь до конфигурационного файла, который используется. По умолчанию находится по данному пути. Рекомендуется использовать формат TOML, он более читабелен.


Проблема с инициализацией FAM Server при первоначальной установке

Проблема

Пример ошибки:

idp@avanpost:/opt/idp$ ./fam_linux_amd64 –init

panic: runtime error: slice bounds out of range [:-57]
 
goroutine 1 [running]:
devenv.avanpost.ru/idp/idp/pkg/x/security.(*AESEncryptor).unpadding(...)
        /home/jenkins/workspace/SSO/Server/master/pkg/x/security/encryptor.go:42
devenv.avanpost.ru/idp/idp/pkg/x/security.(*AESEncryptor).Decrypt(0xc0026800d8, {0xc0021e9680?, 0xc?})
        /home/jenkins/workspace/SSO/Server/master/pkg/x/security/encryptor.go:81 +0x1b2
devenv.avanpost.ru/idp/idp/pkg/oauth2/manager.(*ClientManager).GetClientByID(0xc000288c30, {0x1ac71be?, 0x7f4b04a9f5b8?})
        /home/jenkins/workspace/SSO/Server/master/pkg/oauth2/manager/client_manager.go:50 +0x54
devenv.avanpost.ru/idp/idp/pkg/appcommand.UpdateServiceClient({0x1ac71be?, 0xc001bb1f40?}, {0xc0006519e2, 0x20}, {0x1ac08e7, 0x9})
        /home/jenkins/workspace/SSO/Server/master/pkg/appcommand/appcommand.go:31 +0x68
devenv.avanpost.ru/idp/idp/pkg/product/runner.(*program).init(0xc0005f6308)
        /home/jenkins/workspace/SSO/Server/master/pkg/product/runner/runner.go:871 +0x1f2a
devenv.avanpost.ru/idp/idp/pkg/product/runner.Run({0x1e2aa80, 0xc0007932c0})
        /home/jenkins/workspace/SSO/Server/master/pkg/product/runner/runner.go:552 +0x199a
main.main()
        /home/jenkins/workspace/SSO/Server/master/cmd/fam/main.go:15 +0x157

0

Решение

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

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

Решение проблемы:

  1. Зайти в интерактивный терминал PostgreSQL psql
sudo -u postgres psql

       2.Удалить старую базу данных:

DROP DATABASE idp

       3.Создать новую БД:

CREATE DATABASE idp OWNER=avanpost ENCODING=utf8;

       4.Выйти из интерактивного терминала:

\q

       5.Создать новый ключ шифрования:

./fam_linux_amd64 -generatekey

       6.Произвести миграцию базы данных:

./fam_linux_amd64 -migratedb postgres

       7.Выполнить команду Инициализации приложения:

./fam_linux_amd64 -init


Ошибка "Белый экран смерти"

Проблема

Если после установки IDP и прохождения аутентификации у вас белый экран смерти:
Открываем режим разработчика клавишей F12 и переходим в Console (смотрим ошибку):

image

0

Решение

Самая частая ошибка - validateJwtAttributes: Проверить время - оно должно быть синхронизировано. При необходимости перезапустить демона NTP на FAM:


sudo systemctl restart ntp




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

Проблема

Обновление системы: порядок действия и важные аспекты, на которые необходимо обратить внимание.

0

Решение

Важно!

Не рекомендуется обновлять FAM, если у вас кастомизированная версия продукта, перед обновлением кастомной версии обратитесь в техническую поддержку.

Важно!

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

Важно!

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

Для обновления MFA+/FAM произведите следующие действия:

Все действия рекомендована выполнять от пользователя idp.

  1. Скачайте новую версию FAM Server по ссылке: Sonatype Nexus Repository 9
  2. Остановите службу sudo systemctl stop idp
  3. Рекомендуется перед обновлением удалить папку public (/opt/idp/public), так как при распаковки архива только заменяются существующие файлы и добавляются новые, не используемые файлы будут оставаться в каталоге. Если у вас кастомные шаблоны или в них были внесены изменения, то не удаляйте данную папку. (sudo rm -r /opt/idp/public)
  4. Скопируйте с заменой файлы из скачанного архива в /opt/idp/ (tar -C /opt/idp -xvzf /path_to_tar_file/avanpost_fam_server-1.10.1-1708.linux.tar.gz)
  5. Находясь в каталоге /opt/idp/ выполнить миграцию БД командой ./fam_linux_amd64 -migratedb postgres
  6. Выполнить команду (после сообщения об успешном завершении миграции) ./fam_linux_amd64 -init
  7. Запустить службу на сервере FAM sudo systemctl start idp

Для правильной работы MFA+\FAM необходимо так же обновлять FAM Mobile Services. Версия FAM Mobile Services должна быть идентичной версии FAM Server.

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

В обновлении 1.8.0 изменился формат конфигурационного файл с json на tomal, но проблем с обновлением не должно возникнуть, так как реализована обратная совместимость с json-файлом.

Обсуждение