Avanpost FAM/MFA+ : 4.4.2. Установка FAM Agent в ОС Linux

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

Компонент Avanpost FAM Agent устанавливается локально для решения следующих задач:

  • осуществления 2FA/MFA в унаследованных десктопных приложениях при использовании механизма аутентификации Enterprise SSO;
  • SSO при переключении между унаследованными десктопными приложениями, подключенными посредством механизма Enterprise SSO;
  • кросспротокольной аутентификации посредством механизма Unified SSO. 

В FAM Agent осуществляется автоматическая передача информации о сессии из компонентов Windows Logon/Linux Logon. В случае успешной аутентификации пользователя посредством Windows Logon/Linux Logon повторная аутентификация с использованием FAM Agent не требуется.

В случае, если пользователь проявляет активность на рабочей станции, FAM Agent автоматически продлевает время жизни сессии, не требуя повторного прохождения аутентификации. 

Поддерживаются следующие типы операционные системы семейства Linux:

  • RED OS;
  • RoSA;
  • Astra Linux 1.7+;
  • CentOS;
  • ALT Linux/ALT Linux-server;
  • Debian;
  • Ubuntu.

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

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

  • Доступ к выполнению команд от имени суперпользователя:
  • Скачанный актуальный RPM/DEB-пакет FAM Agent;
  • Сетевой доступ к Avanpost FAM Servert;
  • Для работы графического интерфейса должна быть установленная среда рабочего стола (KDE, Xfce, MATE, GNOME, Cinnamon).

Установка и настройка компонента на стороне Avanpost FAM Server

Настройка компонента в интерфейсе административной консоли Avanpost FAM Server осуществляется в следующей последовательности: 

  1. Зайти во вкладку создания приложения, нажав кнопку "Добавить приложение" в сервисе "Приложения".
  2. На этапе "Основные настройки" требуется ввести наименование и выбрать тип OAuth/Open ID Connect (более подробно процесс создания и управления приложениями описан в разделах Управление приложениями и Управление OpenID Connect-приложениями).
  3. На этапе "Настройки интеграции" необходимо установить настройки приложения (более подробно описано в Шаг 2. Настройки интеграции для OIDC-приложения). Обязательно требуется задать значения параметров в графе Secret (произвольный секретный ключ, который будет использоваться для подключения к приложению) и Redirect URIs (URL-адрес, на который пользователь будет перенаправлен после успешной аутентификации).

    Администратор может сменить секретный ключ (например, при компрометации ключа) в профиле созданного приложения во вкладке "Настройки" в разделе "Смена секрета".

    Секретный ключ должен совпадать с тем, который задается в конфигурационном файле/в мастере установки на рабочей станции пользователя.


  4. На этапе "Настройки аутентификации" выбрать факторы аутентификации приложения, установив переключатели напротив тех или иных факторов (более подробно описано в Шаг 3. Настройки аутентификации для OIDC-приложения).

  5. На этапе "Завершение" установить флажок "Сделать приложение активным" и сохранить (более подробно описано в Шаг 4. Завершение для OIDC-приложения).
  6. После создания приложения требуется найти его в режиме "Приложения" и зайти в профиль, нажав на название приложения. Зайти во вкладку "Настройки" и нажать для перехода в режим редактирования.
  7. В режиме редактирования следует задать следующие параметры: 
     – ID synonym - Cиноним идентификатора приложения;
     – Allowed grant types - Перевести переключатель в положение "Активно" () для следующих Grant Types: Refresh token и Password.

  8. Перейти во вкладку создания приложения, нажав кнопку "Добавить приложение" в сервисе "Приложения".
  9. На этапе "Основные настройки" ввести наименование и выбрать тип Enterprise SSO (более подробно описано в разделе Шаг 1. Основные настройки для Enterprise SSO-приложений).
  10. На этапе "Настройки интеграции" в текстовое поле ввести шаблон приложения (более подробно описано в Шаг 2. Настройки интеграции для Enterprise SSO-приложений):

    Шаблон приложения представлен в виде JSON-блока, содержащего параметры, определяющие признаки перехвата окон десктопного приложения, и последовательный набор команд для заполнения и сабмита формы аутентификации десктопного приложения. Шаблон может меняться по мере развития FAM Agent. Разработка шаблона приложения описана в разделе Разработка шаблона Enterprise SSO.

    {
      "authenticateTemplates": [
        {
          "commands": [
            {
              "commandType": "Sleep",
              "sleepTime": 100
            },
            {
              "commandType": "TextEntry",
              "textMessage": "$user"
            },
            {
              "commandType": "KeyPress",
              "code1": "TAB"
            },
            {
              "commandType": "TextEntry",
     
              "textMessage": "$password"
            },
            {
              "commandType": "KeyPress",
              "code1": "RETURN"
            }
          ],
          "grab": [
            {
              "windowName": "Login",
              "processName": "mockauth"         
            },
            {
              "windowName": "Login2",
              "processName": "mockauth",
              "windowClassName": "SomeWindowClassNameIfItNeed"
            }
          ]
        }
      ],
      "changePasswordTemplates": [
        {
          "commands": [
            {
              "commandType": "Sleep",
              "sleepTime": 100
            },
            {
              "commandType": "TextEntry",
              "textMessage": "$user"
            },
            {
              "commandType": "KeyPress",
              "code1": "TAB"
            },
            {
              "commandType": "TextEntry",
              "textMessage": "$password"
            },
            {
              "commandType": "KeyPress",
              "code1": "TAB"
            },
            {
              "commandType": "TextEntry",
              "TextMessage": "$newpassword"
            },
            {
              "commandType": "KeyPress",
              "code1": "RETURN"
            }
          ],
          "grab": [
            {
              "windowName": "ChangePassword",
              "processName": "mockauth"
            }
          ]
        }
      ]
    }
    
    
  11. На этапе "Настройки аутентификации" следует выбрать факторы аутентификации приложения, установив переключатели напротив тех или иных факторов (более подробно в Шаг 3. Настройки аутентификации для Enterprise SSO-приложений).

  12. На этапе "Завершение" установить флажок "Сделать приложение активным" и сохранить.
  13. Создать новую группу. Для этого необходимо нажать кнопку "Добавить группу" в режиме "Группы" и в открывшейся вкладке ввести запрашиваемые параметры (более подробно в Добавление новых групп).

  14. Добавить в группу пользователей, которые будут аутентифицироваться в настроенных приложениях. Ручное добавление пользователей администратором реализуется в профиле группы. Также доступ пользователя к группам и ролям допускается редактировать в УЗ пользователя

  15. Назначить ранее созданные OAuth/Open ID Connect и Agent-приложения в данную группу. Для этого в профиле группы во вкладке "Приложения" созданной группы установить переключатель в положение "Активно" () напротив созданных приложений.

  16. Для настройки централизованной аутентификации в desktop-приложениях через Avanpost FAM в учетных записях пользователей зайти во вкладку "Приложения" в раздел "Учетные записи" в графу "Приложение" и выбрать в выпадающем списке FAM_Agent.

  17. Для Упрощения настройки на стороне клиента при помощи Discovery-документа следует: 
    1. Перейти в раздел "Системные настройки" режима "Сервис".
    2. В разделе "Конфигурация FAM Агента" в параметре "OpenID-приложение для агента" выбрать из выпадающего списка настроенное OIDC-приложение и нажать кнопку "Сохранить".
  18. Для использования Avanpost FAM Agent совместно в контексте механизма Unified SSO требуется выполнить дополнительную настройку приложений, в которые пользователи смогут аутентифицироваться USSO (более подробная настройка описана в статье Настройка Unified SSO):
    1. Для ранее созданных OpenID Connect/Reverse Proxy/SAML-приложений перейти во вкладку "Настройки интеграции" в профиле приложения и установить флаг в чекбокс "Включить USSO" (для приложений типа Enterprise SSO использование механизма USSO доступно автоматически и не требует дополнительной настройки)
    2. При необходимости использования встроенных механизмов аутентификации операционных систем совместно с Unified SSO приложений настроить Windows Logon и/или Linux Logon-приложения.
    3. При необходимости использования LDAP-аутентификации настроить LDAP Proxy-приложение (более подробно в статьях Установка FAM LDAP Proxy в ОС Linux из tar.gz-архива и Управление LDAP Proxy-приложениями).

      Для того, чтобы после входа через Windows/Linux Logon/LDAP Proxy-механизмы дальнейшая аутентификация проходила бесшовно, процесс аутентификации, настроенный для LDAP Proxy/Windows/Linux Logon-приложения, и процесс аутентификации, настроенный для OIDC-приложения FAM Agent, должны быть идентичны. В случае, если процессы отличаются, будет запрошено прохождение дополнительных факторов, которые не запрашивались в процессе Windows/Linux Logon/LDAP-аутентификации. Для изменения факторов аутентификации настроенных приложений требуется скорректировать факторы во вкладке MFA в профиле настроенных приложений (функционал основных вкладок описан в разделе Управление приложениями). Если для приложений, в которые аутентифицируется пользователь посредством USSO, были настроены дополнительные факторы аутентификации, они также будут запрошены при попытке пользователя авторизоваться в данных приложениях.

    4. Убедиться, что пользователи, которые должны аутентифицироваться посредством USSO, добавлены в группы, предоставляющие доступ к приложениям из всей цепочки USSO-аутентификации (например, если пользователь должен аутентифицироваться через встроенные механизмы аутентификации Windows в 1C:Предприятие, то ему должен предоставлен доступ к соответствующему Windows Logon-приложению, OIDC-приложению компонента FAM Agent и OIDC-приложению, настроенному для 1C:Предприятие). 

Настройка конфигурации FAM Agent

Администратору доступны дополнительные настройки использования FAM Агент в административной консоли FAM Server. Настройки располагаются в разделе "Системные настройки" режима "Сервис". Настройка дополнительных параметров Агента доступна в подразделе "Конфигурация FAM Агента":

ПараметрЗначение
Настройки Enterprise SSO
Отключено

Заполнить чекбокс:

  • при выключенном чекбоксе позволяет аутентифицироваться в приложениях типа Enterprise SSO: FAM Агент перехватывает окно согласно шаблону Enterprise SSO-приложения, выполняется передача и объединение сессии;
  • при включенном чекбоксе аутентификация в приложениях типа Enterprise SSO посредством Агента недоступна. 
Время обновления конфигурации приложения (в секундах)Ввести время обновления конфигурации Enterprise SSO-приложения.  
Настройки Unified SSO
Блокировать ОС при завершении сессии

Заполнить чекбокс:

  • при включенном чекбоксе происходит автоматическая блокировка сессии пользователя после выхода из привязанного OIDC-приложения;
  • при выключенном чекбоксе ОС на рабочей станции пользователя не блокируется после завершения сессии.

    Для Alt Linux и CentOS перед блокировкой ОС запрашивается пароль администратора. 

OpenID приложение для агентаВыбрать из выпадающего списка OIDC-приложение, связанное с Агентом. 

Установка и обновление на рабочей станции под управлением ОС Linux

Установка FAM Agent выполняется следующим образом:

  1. Для установки компонента из предварительно скачанного дистрибутива следует выполнить команду (вместо xyz следует указать актуальное наименование дистрибутива):
    Тип ОСОписание действий
    RED OS/RoSA
    sudo dnf install ./avanpost_fam_agent-xyz.REDOS.x86_64.rpm
    Astra Linux 
    sudo apt install ./avanpost_fam_agent-xyz.deb
    CentOS
    sudo rpm -i ./avanpost_fam_agent-xyz.x86_64.rpm
    ALT Linux / ALT Linux-server
    sudo apt-get install ./avanpost_fam_agent-xyz.deb
  2. В случае, если планируется совместное использование Agent и Linux Logon, также необходимо:
    1. Установить и настроить компонент FAM Linux Logon (для настройки следует использовать статью Установка и настройка FAM Linux Logon).
    2. Перезагрузить рабочую станцию.
    3. Выполните вход в ОС через Linux Logon и убедиться, что Agent запустился в аутентифицированном состоянии.

Для обновления требуется повторно установить компонент. Перед повторной установкой рекомендуется предварительно удалить устаревшую версию при помощи команды:

Тип ОСОписание действий
RED OS/RoSA
sudo dnf remove avanpost_fam_agent
Astra Linux 
sudo apt remove famagent

или

sudo apt-get remove famagent

Имя пакета для удаления отличается от имени файла установки.

CentOS
sudo rpm -e avanpost_fam_agent
ALT Linux / ALT Linux-server
sudo apt-get remove avanpost_fam_agent

Настройка механизма дистрибуции

В Avanpost FAM реализован механизм автоматического предложения загрузки и установки Authenticator Desktop (FAM Agent) пользователям в процессе аутентификации. Данная функциональность активируется в случае, если активны лицензии на редакции Unified SSO и Device Control. При аутентификации через FAM Server автоматически определяет целевую платформу и проверяет, установлен ли Authenticator Desktop на рабочей станции пользователя. Если FAM Agent не обнаружен, пользователю отображается экран с предложением загрузить дистрибутив для его ОС (при этом пользователь может вручную выбрать дистрибутив для другой платформы или пропустить шаг установки, если это не требуется).

Механизм дистрибуции предназначен для автоматизации процесса распространения и обновления клиентских компонентов FAM Agent среди пользователей системы. Функциональность позволяет администратору централизованно управлять версиями дистрибутивов, обеспечивая пользователей актуальными пакетами для установки. Механизм дистрибуции предназначен для решения следующих задач:

  • предоставление пользователям ссылок для скачивания актуальных версий FAM Agent;
  • централизованное управление версиями дистрибутивов для различных операционных систем;
  • автоматическое информирование пользователей о необходимости обновления
  • управление источниками дистрибутивов.

Настройка доступна в режиме "Сервис" из раздела "Настройка механизма дистрибуции". Раздел содержит следующую информацию и возможности:

ПараметрЗначение
Включить механизм дистрибуции

Установить флаг в чекбокс:

  • при установленном флаге механизм дистрибуции активен и пользователи автоматически получают доступ к скачиванию дистрибутивов;
  • при выключенном флаге механизм дистрибуции не используется.
Источник для распространения

Выбрать источник получения дистрибутивов:

  • Официальный источник компании Avanpost – загрузка информации о доступных версиях осуществляется из облачного репозитория
  • Из собственного источника – администратор вручную указывает URL-адреса для скачивания дистрибутивов.

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

  • Доступность источника – Все указанные URL должны быть доступны для скачивания без дополнительной аутентификации;
  • Безопасность источника – Обязательно использование протокола HTTPS;
  • Стабильность источника – Сервер дистрибуции должен обеспечивать высокую доступность;
  • Выполнять систематический контроль актуальности версий и обновляет ссылки на новые версии компонента.
Официальный источник компании Avanpost
Версия

Выбрать версию компонента для обновления:

  • Последняя версия;
  • Прочие версии (выбрать доступную для обновления).
Доступность репозитория пакетовСтатус доступности выбранного репозитория (доступен/недоступен)
Из собственного источника
WindowsВставить в текстовое поле HTTPS-ссылку для скачивания MSI-пакета FAM Agent для ОС Windows.
Linux (deb)Вставить в текстовое поле HTTPS-ссылку для скачивания DEB-пакета FAM Agent для Debian-based систем.
Linux (deb)Вставить в текстовое поле HTTPS-ссылку для скачивания RPM-пакета FAM Agent для RPM-based систем.

Для сохранения изменений следует нажать кнопку "Сохранить", для отказа от изменений – кнопку "Отмена".

При отсутствии сетевого соединения с packages.avanpost.ru или при возникновении ошибок доступа система отображает сообщение об ошибке. В данном случае следует выполнить следующие действия:

  • Проверить сетевую доступность ресурса packages.avanpost.ru.
  • Убедиться, что межсетевые экраны и прокси-серверы не блокируют соединение.
  • При необходимости настроить исключения в правилах сетевого доступа.

Запуск и настройка

Запуск FAM Agent выполняется при помощи команды: 

avanpost_fam_agent

В случае возникновения проблем с графическим интерфейсом следует:

  • при отсутствии ярлыка компонента в меню/панели:
    • запустить Агент через терминал вручную;
    • включить опцию «Показывать виджет управления» в настройках Агента;
  • при проблеме открытия окна Агента до аутентификации повторно запустить Агент.

Настройка компонента выполняется через настройку конфигурационного файла, расположенного по пути:  /home/<LinuxUsername>/.local/share/Avanpost/appsettings.toml. Информация о конфигурационном файле компонента содержится в приложении А.

 В случае, если во время работы FAM Агент на ОС семейства Linux возникает ошибка, связанная с автоматическим закрытием окна, рекомендуется удалить конфигурационный файл (после удаления он будет создан автоматически) посредством команды:

sudo rm -rf /home/rex/.local/share/Avanpost/appsettings.toml

Проверка после установки и обновления

В режиме доступа к рабочей станции:

  1. Инициировать вход на рабочую станцию.
  2. Выбрать Avanpost FAM Agent в качестве способа аутентификации.
  3. Пройти аутентификацию в соответствии с настроенным сценарием аутентификации.

В режиме доступа по RDP совершить следующие действия:

  1. Инициировать подключение по RDP на рабочую станцию.
  2. Пройти аутентификацию в соответствии с настроенным сценарием аутентификации.

Приложение А. Пример конфигурационного файла avanpost_fam_agent.dll.config

Конфигурационный файл может быть настроен следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="gRPCServerAddress" value="10.10.161.81:9007" />
    <add key="FAMServerUrl" value="https://apidp.ru" />
    <add key="OpenIDConfigurationUrl" value="https://apidp.ru/.well-known/openid-configuration" />
    <add key="OpenIDClientId" value="d9212935-1380-41ca-b100-dba7412827cf" />
    <add key="OpenIDSecret" value="d9212935" />
    <add key="ServerCertificatePath" />
    <add key="SSLTargetName" />
    <add key="TemplateRefreshTimerMinutes" value="125" />
    <add key="DefaultLanguage" value="ru-RU" />
    <add key="IgnoreFaultyCertificate" value="False" />
  </appSettings>
</configuration>

Таблица – Значения ключей конфигурационного файла



gRPCServerAddress

IP-адрес Avanpost FAM Server.

FAMServerUrl

URL-адрес сервера FAM.

OpenIDConfigurationUrl

URL-адрес файла конфигурации OpenID-сервера, который используется для аутентификации.

OpenIDClientId

Client ID приложения в системе FAM.

OpenIDSecret

Cекретный ключ клиента OpenID. Задается вручную.

ServerCertificatePath

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

SSLTargetName

Имя, используемое для проверки подлинности сертификата SSL/TLS-сервера при установлении безопасного соединения.

TemplateRefreshTimerMinutes

Интервал обновления шаблонов в минутах.

DefaultLanguageЯзык по умолчанию.
IgnoreFaultyCertificate

Указывает, игнорировать ли ошибки с ошибочным сертификатом при безопасном подключении (True - игнорировать, False - не игнорировать).

Приложение Б. Пример Discovery-документа FAM Agent

В нижеприведенном примере приведена структура Discovery-документа:

{
  "unifiedSSOSettings": {
    "blockOSAfterSessionLogout": true
  },
  "enterpriseSSOSettings": {
    "disabled": false,
    "configurationRefreshTimeInSeconds": 60
  },
  "grpcSettings": {
    "host": "avanpost.fam.local",
    "port": 9007,
    "useTLS": true,
    "certificate": "-----BEGIN CERTIFICATE-----\nMIIFlzCCA3+gAwIBAgIUOY1/e/SoLnZwyRRwpmEZiagmQDcwDQYJKoZIhvcNAQEN\nBQTE-----\n"
  }
}

Таблица – Значения параметров приведенного конфигурационного Discovery-документа

ПараметрЗначение
unifiedSSOSettings – параметры USSO
blockOSAfterSessionLogoutФлаг, определяющий, будет ли ОС блокироваться при завершении сессии при использовании механизмов USSO.
enterpriseSSOSettings
disabledФлаг отключения Enterprise SSO.
configurationRefreshTimeInSecondsИнтервал между обновлениями конфигурации приложения.
grpcSettings – настройки gRPC (используются настройки из конфигурационного файла FAM Server)
hostХост gRPC-сервера.
portПорт gRPC-сервера.
useTLSФлаг включения TLS-шифрования.
certificateСертификат сервера в формате PEM.

Приложение В. Эндпоинты FAM Agent

EndpointМетодОписание
Информация о пакетах обновлений
/api/v1/packages/fam-agent%2Favanpost_fam_agentGETПолучение списка всех доступных версий пакета
/api/v1/packages/fam-agent%2Favanpost_fam_agent/versions/{version}GETПолучение информации о конкретной версии пакета
/api/v1/packages/fam-agent%2Favanpost_fam_agent/versions/latestGETПолучение информации о последней доступной версии
/.well-known/agent-configurationGET

Discovery-endpoint для получения подробной информации о доступных версиях FAM Agent. Клиенты автоматически обращаются к данному endpoint для получения информации о текущей версии. После обращения к эндпоинту возвращается конфигурацию в формате JSON, содержащая следующую информацию о настройках USSO, gRPC, Enterprise SSO, версии Agent (имя, версия, источник, URL-адрес для скачивания).

Эндпоинты инстанса
 /api/v1/agent/instance/{id}GET

Получение информации об инстансе (конкретном отдельном экземпляре) компонента:

  • идентификатор (id);
  • статус – online, offline, pending.
/api/v1/agent/instance/{id}/healthPUTПеревод инстанса FAM Agent в статус online.
/api/v1/agent/instance/{instanceID}/onlinePUTАвтоматическая отправка запроса на FAM Server для обновления статуса экземпляра агента при обработке вызова famagent://healthcheck?instanceID=<InstanceID>.


Обсуждение