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

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

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

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

В случае, если пользователь проявляет активность на рабочей станции, 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

Для установки компонента из предварительно скачанного дистрибутива следует выполнить команду (вместо 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

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

Тип ОСОписание действий
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

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

Запуск 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.

Обсуждение