Установка FAM Agent в ОС Windows через GPO (групповые политики) - Avanpost FAM/MFA+

Установка FAM Agent в ОС Windows через GPO (групповые политики)

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

Компонент Avanpost FAM Agent может устанавливаться через механизм Group Policy Microsoft Active Directory для решения следующих задач:

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

Локальная установка Avanpost FAM Agent может быть удобна в следующих случаях:

  • Рабочая станция находится не в домене. К примеру, если в качестве рабочей станции используется ноутбук, не подключенный к домену, либо домашний компьютер сотрудника.
  • Сервер находится не в домене из соображений безопасности.

В случае большого числа машин, на которые планируется установка Avanpost FAM Agent, рекомендуется использовать способ установки через GPO.

Поддерживаются следующие ОС Windows:

  • Microsoft Windows Desktop 7;
  • Microsoft Windows Desktop 8;
  • Microsoft Windows Desktop 10;
  • Microsoft Windows Desktop 11;
  • Microsoft Windows Server 2012R2;
  • Microsoft Windows Server 2016;
  • Microsoft Windows Server 2019;
  • Microsoft Windows Server 2022.

Загрузка дистрибутива

Дистрибутив компонента Avanpost FAM Agent доступен по ссылке: https://packages.avanpost.ru/#browse/browse:fam-dists:fam-agent.

Компонент Avanpost FAM Agent представляет собой zip-архив, содержащий:

  • установочный MSI-файл;
  • стандартный конфигурационный файл для MSI-файла.

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

На стороне сервера MS AD

  1. Для установки FAM Agent в существующей политике домена по умолчанию пройти путь: Конфигурация компьютера Политики Конфигурация программ → Установка программ, ЛКМ Создать Пакет (Рисунок), выбрать новую версию MSI FAM Agent.



  2. Задать сетевой путь (Рисунок):



  3. В окне "Развертывание программ" выбрать метод развертывания "назначенный" и нажать "ОК" (Рисунок):



  4. Установленный Avanpost FAM отобразится в списке раздела "Установка программ" (Рисунок):



  5. В корневом каталоге c установочным файлом должен находиться конфигурационный файл с именем «avanpost_fam_agent.dll.config» и содержимым, указанным в Приложении А.

На стороне административной консоли Avanpost FAM Server

  1. Создать приложение с типом "Open ID" (Рисунок).

  2. На вкладке "Настройки интеграции" установить настройки (Рисунок): 
    Secret: секретный ключ, совпадающий с указанным в конфигурационном файле "avanpost_fam_agent.dll.config" значением "OpenIDSecret";


    Смена секретного ключа производится на вкладке "Настройки" созданного приложения (Рисунок).


    Redirect URIs: любой URL-адрес (требуется для первоначального создания приложения, на дальнейшее функционирование которого не влияет);
    Base URL: URL-адрес сервера FAM.
  3. На вкладке "Настройки аутентификации" задать факторы аутентификации приложения ("Password").

  4. На этапе завершения настройки установить флажок "Сделать приложение активным" и сохранить (Рисунок). 
  5. Зайти в приложение после сохранения и на вкладке "Настройки": 
     – в строке ID synonym установить синоним идентификатора (Рисунок);


     – в разделе "Allowed grant types" перевести переключатель "Refresh token" и "Password" в положение "Активно" (Рисунок):

  6. Создать приложение типа "Desktop" (Рисунок).


  7.  На вкладке "Настройки интеграции" в терминал добавить шаблон, посредством которого производится захват окна для аутентификации и для изменения пароля.
    Пример шаблона:

    {
    	"authenticateTemplates": [{
    		"commands": [{
    				"commandType": "Sleep",
    				"SleepTime": 1000
    			},
    			{
    				"commandType": "KeyPress",
    				"Code1": "TAB"
    			},
    			{
    				"commandType": "KeyPress",
    				"Code1": "TAB"
    			},
    			{
    				"commandType": "KeyPress",
    				"Code1": "TAB"
    			},
    			{
    				"commandType": "TextEntry",
    				"TextMessage": "$user"
    			},
    			{
    				"commandType": "KeyPress",
    				"Code1": "TAB"
    			},
    			{
    				"commandType": "TextEntry",
    				"TextMessage": "$password"
    			},
    			{
    				"commandType": "KeyPress",
    				"Code1": "RETURN"
    			}
    		],
    		"grab": [{
    		    "WindowClassName": "V8TopLevelFrameTaxiStarter",
    			"windowName": "",
    			"mainWindowTitle": "Доступ к информационной базе",
    			"preventClosing": "true",
    			"windowDelay": 5,
    			"processName": "1cv8c"
    		}]
    	}],
    	"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"
    		}]
    	}]
    }

     

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

  9. На этапе завершения настройки установить флажок "Сделать приложение активным" и сохранить.
  10. Создать новую группу (Рисунок):

  11. Добавить в группу УЗ пользователя, через которую будет производиться аутентификация (вкладка "Пользователи" см.Рисунок):

  12. Добавить предварительно созданные Open ID и Desktop-приложения в группу, установив переключатель в положение "Активно" в строке с каждым элементом (вкладка "Приложения" см.Рисунок):

  13. Для централизованной аутентификации в desktop-приложении через систему FAM перейти в карточку пользователя и добавить учетные данные (Рисунок): 

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

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

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

В режиме доступа по RDP:

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

Обновление

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

Конфигурационный файл "avanpost_fam_agent.dll.config", содержащийся в zip-архиве дистрибутива, может быть настроен следующим образом:

<?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>

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

КлючЗначение
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 - не игнорировать).

Обсуждение