Установка FAM Mobile Services в ОС Linux из rpm-пакета


Работы по установке компонентов Avanpost FAM Mobile Services выполняются на подготовленном сервере с ОС Linux. 

При установке будут использованы два пакета для работы Avanpost FAM Mobile Services:

  • API Service, предоставляющий API для мобильных приложений Avanpost Authenticator (E-passport Mobile для iOS) сотрудников;
  • Push Service, выполняющий роль брокера сообщений для доставки push-сообщений в приложения сотрудников Avanpost Authenticator (E-passport Mobile для iOS).

Установка и настройка

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

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

  1. В ОС семейства Debian Linux должны быть установлены следующие программы:
    sudo (программа выполнения команд от имени суперпользователя).

  2. Выполнена синхронизация времени в ОС с сервером синхронизации времени.

Шаги по установке

Подготовка репозитория для установки сервисов

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

  1. Открыть файл с настройками репозитория для Push Service. При желании следует использовать любой текстовый редактор, доступный в системе, в данном примере работа ведется на основе использования редактора vi.
    vi /etc/yum.repos.d/avanpost_pushgwsrv.repo

    Примечание

    Переход в режим ввода из командного режима в текстовом редакторе vi осуществляется командой i. Выход из режима ввода в командный режим осуществляется клавишей Esc. Для того, чтобы закончить редактирование и сохранить файл в текстовом редакторе vi,  нужно ввести в командном режиме команду : , далее ввести команду для записи файла и выхода из редактора wq.

  2. Добавить текст по аналогии с нижеприведенным:
    [avanpost_pushgwsrv]
    name=PUSHGWSRV Repository
    baseurl=https://packages.avanpost.ru/repository/rpm-hosted/PUSHGWSRV/CentOS/
    enabled=1
    protect=0
    gpgcheck=0
    metadata_expire=30s
    autorefresh=1
    type=rpm-md
    gpgkey=https://docs.avanpost.ru/certs/deb-hosted.gpg.key

    В качестве параметра baseurl требуется использовать актуальный путь к репозиторию:

    • для CentOS: baseurl=https://packages.avanpost.ru/repository/rpm-hosted/PUSHGWSRV/CentOS/
    • для RED OS: baseurl=https://packages.avanpost.ru/repository/rpm-hosted/PUSHGWSRV/REDOS/

  3. Открыть файл с настройками репозитория для API Service (допускается использовать любой текстовый редактор, доступный в системе, в данном примере работа ведется на основе использования редактора vi):
    vi /etc/yum.repos.d/avanpost_proxy.repo
  4. Добавить следующий текст:
    [avanpost_proxy]
    name=AUTHPROXY Repository
    baseurl=https://packages.avanpost.ru/repository/rpm-hosted/AUTHPROXY/CentOS/
    enabled=1
    protect=0
    gpgcheck=0
    metadata_expire=30s
    autorefresh=1
    type=rpm-md
    gpgkey=https://docs.avanpost.ru/certs/deb-hosted.gpg.key

    В качестве параметра baseurl требуется использовать актуальный путь к репозиторию:


Установка Push Service

  1. Используя консольный менеджер, обновить пакеты и установить пакет с сервисом при помощи команд:
    sudo yum update
    sudo yum install avanpost_pushgwsrv
  2. Используя любой текстовый редактор, отредактировать файл с настройками (в данном примере работа ведется на основе использования редактора vi):
    sudo vi /etc/systemd/system/pushgwsrv.service
  3. Указать актуальные значения параметров:
    ПараметрЗначение
    [Unit]

    Description

    Описание (наименование) сервиса. 
    [Service]
    WorkingDirectoryРабочая директория, в которой запускается процесс.

    ExecStart

    Команда для запуска сервиса с указанием полного пути к исполняемому файлу и параметрами командной строки. Содержит следующие параметры:

    • --addr – IP-адрес или хост, на котором требуется открытие сетевого порта для получения сетевых запросов от сервера Avanpost FAM; например – 0.0.1;
    • --port – порт, к которому будет подключаться Avanpost FAM Server; по умолчанию – 4222

    Restart

    Параметр настройки автоматического перезапуска сервиса (значение always означает, что сервис будет автоматически перезапускаться при любой причине остановки).

    RestartSec

    Время ожидания (в секундах) перед перезапуском сервиса после его остановки.

    SyslogIdentifier

    Имя, под которым логи сервиса записываются в системный журнал (syslog).

    User

    Идентификатор пользователя, от имени которого запускается процесс. Рекомендуется использовать специально созданного пользователя idp. 

    [Install]

    WantedBy

    Параметр, указывающий, когда должен быть запущен сервис (по умолчанию multi-user.target сервис будет запускаться автоматически при загрузке системы).
    [Unit]
    Description=Avanpost FAM Mobile Services Push
    
    [Service]
    WorkingDirectory=/opt/push_gateway_server
    ExecStart=/opt/push_gateway_server/push_gateway_server -addr 10.10.181.96 -port 4222
    Restart=always
    RestartSec=10
    SyslogIdentifier=pushgwsrv
    User=idp
    
    [Install]
    WantedBy=multi-user.target
  4. Убедиться, что необходимые порты открыты в межсетевом экране firewalld (в противном случае сервис окажется недоступен извне).
  5. Перезапустить службы: 
    sudo systemctl daemon-reload
    sudo systemctl restart pushgwsrv

Установка API Service

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

  1. Используя консольный менеджер, обновить пакты и установить пакет с сервисом при помощи команд:
    sudo yum update
    sudo yum install avanpost_authproxy
  2. Используя любой текстовый редактор, отредактировать файл с настройками (в данном примере работа ведется на основе использования редактора vi):
    sudo vi /etc/systemd/system/authproxy.service
  3. Указать актуальные значения параметров:
    ПараметрЗначение
    [Unit]

    Description

    Описание (наименование) сервиса. 
    [Service]
    WorkingDirectoryРабочая директория, в которой запускается процесс.

    ExecStart

    Команда для запуска сервиса с указанием полного пути к исполняемому файлу и параметрами командной строки. Содержит следующие параметры

    • --baddr – Адрес интерфейса для входящих запросов от мобильного приложения. IP-адрес (в примере ниже указан как 127.0.0.1): по умолчанию не определён и должен быть заменён на актуальное значение.
    • --bport – Порт внутреннего сетевого интерфейса, к которому будет обращаться компонент Avanpost FAM Server (или экземпляры компонента Avanpost FAM Server в случае использования кластеризованной схемы развёртывания). Порт по умолчанию – 9999.
    • --faddr – Адрес внешнего сетевого интерфейса, к которому обращаются мобильные приложения Avanpost Authenticator (E-passport Mobile). IP-адрес по умолчанию не определён и должен быть заменён на актуальное значение. 
    • --fport – Порт внешнего сетевого интерфейса, к которому обращаются мобильные приложения Avanpost Authenticator (E-passport Mobile). Порт по умолчанию – 8888.

      DNS-имя (хост), используемое в качестве внешнего URL-адреса для подключения мобильного приложения Avanpost Authenticator, не должно содержать символа подчёркивания (_). Согласно стандарту DNS (RFC 1035), имена хостов должны соответствовать правилам LDH (только латинские буквы, цифры и дефис).

    • --token – Cекретный токен, заданный на стороне компонента Avanpost FAM Server при настройке API Service.

      Важно

      В токене не должно содержаться кириллических символов, а также спецсимволов (~ . .. / # ? * [ ] ; & < > | ! $). Сам токен следует обрамлять одинарными кавычками в качестве дополнительной защиты (экранирование символов от использования их в качестве параметров командной строки).

    • --skip-not-initial – Обязательный флаг для режима работы с несколькими FAM-узлами в отказоустойчивом исполнении. Обеспечивает агрегацию push-уведомлений и маршрутизацию запросов.

    Restart

    Параметр настройки автоматического перезапуска сервиса (значение always означает, что сервис будет автоматически перезапускаться при любой причине остановки).

    RestartSec

    Время ожидания (в секундах) перед перезапуском сервиса после его остановки.

    SyslogIdentifier

    Имя, под которым логи сервиса записываются в системный журнал (syslog).

    User

    Идентификатор пользователя, от имени которого запускается процесс. Рекомендуется использовать специально созданного пользователя idp. 

    [Install]

    WantedBy

    Параметр, указывающий, когда должен быть запущен сервис (по умолчанию multi-user.target сервис будет запускаться автоматически при загрузке системы).
    [Unit]
    Description=Avanpost FAM Mobile Services API
    
    [Service]
    WorkingDirectory=/opt/authenticator_proxy
    ExecStart=/opt/authenticator_proxy/authenticator_proxy --baddr 127.0.0.1 --bport 9999 --faddr 127.0.0.1  --fport 8888 --token '111111111'
    Restart=always
    RestartSec=10
    SyslogIdentifier=authproxy
    User=idp
    
    [Install]
    WantedBy=multi-user.target
  4. Убедиться, что необходимые порты открыты в межсетевом экране firewalld (в противном случае сервис окажется недоступен извне).
  5. Перезапустить службы:
    systemctl daemon-reload
    systemctl enable authproxy
    systemctl start authproxy
    

Настройка на стороне Avanpost FAM Server

Перед выполнением настройки следует убедиться, что с сервера Avanpost FAM доступен порт:

  • addr:port Push Service;
  • baddr:bport API Service.

Настройку компонента на стороне FAM Server необходимо выполнять следующим образом (для получения более подробной информации следует обратиться к статьям Управление аутентификацией и Настройка метода Avanpost Authenticator):

  1. В административной консоли в режиме "Сервис" перейти в раздел "Настройки методов аутентификации".
  2. Нажать кнопку "Добавить метод аутентификации".
  3. Настроить параметры согласно таблице и нажать "Далее". 
    ПараметрЗначение
    НазваниеУказать произвольное название (например, «Avanpost Authenticator»).
    Фактор аутентификацииВыбрать «Avanpost Authenticator».
    Метод активенУстановить флаг.
  4. На следующем шаге указать параметры работы метода аутентификации согласно таблице (дополнительной информации о параметрах представлена в статье Настройка метода Avanpost Authenticator):
    ПараметрЗначение
    Ключ-тэгУказать любой уникальный удобный идентификатор, состоящий из букв латинского алфавита и цифр (значение будет фигурировать в журналах).
    Метод активенУстановить флаг.
    Мобильные сервисы включены и доступны для пользователейУстановить флаг.
    Адрес push-сервисаВвести значение: baddr:bport Push Service.
    Email службы технической поддержки

    Ввести контактную информацию и сообщение для пользователей.

    Во избежание возникновения ошибки данные поля должны быть заполнены.


    Телефон службы технической поддержки
    Сообщение для пользователей

    DNS-имя (хост), используемое в качестве внешнего URL-адреса для подключения мобильного приложения Avanpost Authenticator, не должно содержать символа подчёркивания (_). Согласно стандарту DNS (RFC 1035), имена хостов должны соответствовать правилам LDH (только латинские буквы, цифры и дефис).

  5. Нажать кнопку "Сохранить".
  6. В разделе "Настройки методов аутентификации" перейти в профиль настроенного метода и задать следующие параметры. 
    ПараметрЗначение
    Внешний URL-aдрес

    Ввести один из следующих вариантов:

    • Если компонент API Service развёрнут без последующего проксирования через внешний сетевой интерфейс, то установить значение параметра faddr:fport API Service; 
    • Если компонент не развёрнут, то установить значение параметра base_url из основного конфигурационного файла компонента Avanpost FAM Server config.toml.
    Токен для подключения к API-сервисуЗначение, указанное ранее для параметра token для запуска компонента API Service.
  7. Дождаться автоматического перезапуска обработчиков: после завершения настройки и включения метода аутентификации (процесс может занять от нескольких секунд до 1 минуты). Сервер Avanpost FAM самостоятельно считает новые параметры и выполнит переподключение, после чего механизм push-уведомлений будет доступен и начнет функционировать.

Обсуждение