Руководство по настройке Indeed MFA
Автор Andrey Prokopenko, Last modified by Denis Dmitriev на 24 августа 2026 03:28 PM

Indeed MFA — это система многофакторной аутентификации, предназначенная для дополнительной защиты учетных записей и корпоративных информационных систем. Она дополняет стандартный вход по логину и паролю вторым фактором подтверждения, например одноразовым кодом, push-уведомлением, аппаратным или программным токеном.

  1. Настройки в консоли администрирования Indeed MFA
    1. Мобильный пуш
    2. Регистрация аутентификатора
  2. Установка Docker на Linux
  3. Подготовка сертификата для LSA, FRA
  4. Подготовка сертификата для TVP, LPA
    1. Экспорт корневого сертификата центра сертификации
    2. Подготовка pfx сертификата к работе
  5. Агент синхронизации (LSA)
    1. Что потребуется
    2. Подготовка каталога Active Directory
    3. Создание сервисной учетной записи
    4. Установка и настройка LSA
  6. Token Validation Proxy
    1. Что потребуется
    2. Добавление узла аутентификации
    3. Установка и настройка TVP
  7. Indeed Logon
    1. Установка и настройка Indeed Logon
  8. FRA
    1. Что потребуется
    2. Установка и настройка FRA
    3. Интеграция FRA + OpenVPN Access Server
  9. LPA
    1. Что потребуется
    2. Установка и настройка LPA
    3. Интеграция LPA + OpenVPN Access Server
    4. Проверка интеграции OpenVPN Access Server + LPA
  10. ADFS
    1. Что потребуется
    2. Установка и настройка ADFS
    3. Интеграция ADFS + OpenVPN Access Server
  11. Keycloak
    1. Что потребуется
    2. Регистрация Keycloak в IndeedMFA
    3. Устнановка и настройка Keycloak
  12. NPS Extension
    1. Что потребуется
    2. Установка и настройка NPS Extension

1. Настройки в консоли администрирования Indeed MFA.

1.1. Мобильный пуш

Необходимо разрешить мобильному аутентификатору работать в режиме мобильного пуша. Перейдите в ваш виртуальный сервер, откройте Политики→Политика программного токена→Включить пуш технологию.

Сохраните изменения.

1.2. Регистрация аутентификатора

Для регистрации PUSH-аутентификатора, требуется мобильное приложение Indeed Key, доступное в следующих магазинах приложений:

Системные требования Indeed Key:

  • IOS 15.0 или выше
  • Android 7.0 или выше

Для ручной регистрации аутентификатора пользователю перейдите на страницу необходимого пользователя. Виртуальные серверы → Пользователи → Найти → Откройте страницу нужного пользователя.

На странице пользователя разверните панель Методы аутентификации, выдайте нужный аутентификатор. В данной статье рассматривается работа с аутентификатором Программный (автоматическая активация).

После выдачи токена, пользователь на сихронизированную почту получит письмо с ссылкой на регистрацию аутентификатора, перейдя по ссылке отобразиться QR-код, который необходимо отсканировать в приложении Indeed Key, статус регистрации можно отследить в панели Задачи активации.

2. Установка Docker на Linux

Перед развертыванием агента на машину установите Docker Engine, запустите и добавьте машину в автозагрузку. Может потребоваться предварительно подключить и обновить репозитории, детальные инструкции по подключению и обновлению репозиториев с Docker Engine для разных дистрибутивов Linux на веб-сайте вендора.

yum install docker-ce docker-ce-cli (для RedHat-совместимых дистрибутивов)
или
apt install -y docker.io (для Debian-совместимых дистрибутивов)

systemctl start docker

systemctl enable --now docker

3. Подготовка сертификата для LSA, FRA

На сервере, где установлен центр сертификации откройте оснастку certsrv.msc, нажмите ПКМ по Шаблоны сертификатов и выберите Управление

Сделайте копию сертификата "Проверка подлинности Kerberos"

Во вкладке Общие. Выберите удобное имя шаблона, например: LDAPS. Включите настройку Опубликовать сертификат в Active Directory

Во вкладке Обработка запроса разрешите экспортировать закрытый ключ

Снова перейдите в оснастку certsrv.msc и создайте новый выдаваемый шаблон сертификата.

Найдите созданную копию и нажмите OK

На сервере домен контроллера откройте оснастку certlm.msc, перейдите в Личное→Сертификаты и запросите новый сертификат.

Найдите шаблон LDAPS и создайте сертификат.

Экспортируйте созданный сертификат в формате Base-64 без закрытого ключа.

Загрузите сертификат на машину с LSA, FRA. В дальнейшем он будет использоваться при запуске агентов.

4. Подготовка сертификата для TVP, LPA

ВАЖНО! Для полноценной работы TVP потребуется настройка списка отзывов в составе сертификата.

На сервере, где установлен центр сертификации откройте оснастку certsrv.msc, нажмите ПКМ по Шаблоны сертификатов и выберите Управление

Сделайте копию сертификата Веб-сервер

Во вкладке Общие. Выберите удобное имя шаблона, например: Web-copy.

Во вкладке Обработка запроса разрешите экспортировать закрытый ключ

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

Снова перейдите в оснастку certsrv.msc и сделайте новый выдаваемый шаблон сертификата.

Найдите созданную копию и нажмите OK

На сервере домен контроллера откройте оснастку certlm.msc, перейдите в Личное→Сертификаты и запросите новый сертификат.

Найдите шаблон Web-copy, откройте на редактирование.

Заполните шаблон следующими данными:
Имя субъекта - Общее имя: <IP адрес или FQDN сервера>
Дополнительное имя - Служба DNS: <IP адрес или FQDN сервера>

Сохраните изменения и выпустите сертификат.

Экспортируйте созданный сертификат в формате pfx с закрытым ключом

4.1. Экспорт корневого сертификата центра сертификации

Экспортируйте корневой сертификат центра сертификации в формате Base-64 без закрытого ключа. Перейдите в созданный сертификат, откройте вкладку путь сертификации, выберите корневой сертификат и нажмите Просмотр сертификата.

В открывшемся сертификате перейдите во вкладку Состав и скопируйте его в файл.

Загрузите сертификаты на машину с TVP, LPA. В дальнейшем они будут использоваться при запуске агентов.

4.2. Подготовка pfx сертификата к работе

На машине, где установлен OpenSSL (можно делать на Linux), необходимо преобразовать сертификат pfx, в indeed.pem и indeed.key. Сделать это можно следующими командами, в процессе потребуется пароль, который использовался при экспорте сертификата:

openssl pkcs12 -in cloud.indeed.testing.pfx -clcerts -nokeys -out indeed.pem

penssl pkcs12 -in cloud.indeed.testing.pfx -nocerts -nodes -out indeed.key

5. Агент синхронизации (LSA)

LDAP Synchronization Agent, или LSA, — это агент синхронизации, который загружает сведения о пользователях и группах из корпоративного LDAP-каталога в облачный сервис Indeed MFA.
Настройка LSA является обязательным этапом первоначального развертывания Indeed MFA.

5.1. Что потребуется

Перед началом настройки подготовьте:

  • виртуальную или физическую машину с поддерживаемым Linux-дистрибутивом
  • доступ к машине с правами root или возможностью использовать sudo
  • установленный Docker Engine (см. здесь)
  • сетевой доступ от машины LSA до контроллера домена или сервера FreeIPA
  • исходящий сетевой доступ от LSA к сервису Indeed MFA
  • учетную запись оператора виртуального сервера Indeed MFA
  • служебную учетную запись LDAP с правами чтения
  • отдельную группу пользователей, которую необходимо синхронизировать
  • дистрибутив LSA
  • для LDAPS потребуются сертификаты (см. здесь)

Для ознакомительного стенда рекомендуется создать отдельную организационную единицу и отдельную группу, например:

OU=IndeedMFA,DC=indeed,DC=testing
CN=MFA-Users,OU=IndeedMFA,DC=indeed,DC=testing

В группу MFA-Users можно добавить одну или несколько тестовых учетных записей.

5.2. Подготовка каталога Active Directory

На контроллере домена откройте оснастку Active Directory Users and Computers.

Создайте организационную единицу, в которой будут находиться объекты тестового стенда: IndeedMFA
Все синхронизируемые пользователи и группы должны находиться в указанном контейнере или во вложенных контейнерах.

В организационной единице IndeedMFA создайте группу безопасности: MFA-Users
Добавьте в нее пользователей, которых требуется загрузить в Indeed MFA.

Проверьте, что у каждого пользователя заполнены необходимые атрибуты:

  • имя
  • фамилия
  • логин
  • адрес электронной почты
  • при необходимости — номер мобильного телефона

Логины синхронизируемых пользователей не должны совпадать с логинами локальных пользователей, которые уже были вручную созданы в Indeed MFA. В противном случае синхронизация такого пользователя завершится ошибкой.

5.3. Создание сервисной учетной записи

Создайте отдельную учетную запись, от имени которой LSA будет читать каталог. Например: lsa-sync

По умолчанию обычная доменная учетная запись имеет права на чтение большинства объектов Active Directory. Если в организации действуют дополнительные ограничения, явно предоставьте ей права чтения выбранной организационной единицы и вложенных объектов.

5.4. Установка и настройка LSA

Разместите LSA на отдельной Linux-машине внутри корпоративной сети. Обеспечьте доступ до домен контроллера по портам LDAP/LDAPS (389/636).

Скопируйте файлы LSA на Linux-сервер, например в каталог: /opt/indeedmfa/lsa

Откройте административную консоль Indeed MFA и войдите под учетной записью оператора виртуального сервера.

Для своего виртуального сервера выполните следующие действия:

  1. Откройте вкладку Настройки.
  2. Разверните раздел Настройки LDAP-синхронизации.
  3. Включите параметр Включить LDAP-синхронизацию.
  4. При необходимости задайте интервал синхронизации.
  5. Нажмите Добавить.
  6. Укажите IP-адрес Linux-машины, на которой будет запущен LSA. (Необходимо указать внешний IP-адрес, с которого запросы агента поступают в Indeed MFA. Узнать его можно с помощью команды curl ifconfig.me)
  7. Сохраните настройки.
  8. Включите синхронизацию для добавленного агента с помощью переключателя.

Скопируйте и сохраните значения GUID и ключ. В дальнейшем они используются для конфигурационного файла LSA.

Откройте файл:
sudo nano /opt/indeedmfa/lsa/config.ini

Пример конфигурации для Active Directory:

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

  1. Включите параметр enable, выставив ему значение yes.
  2. В параметре sas_address_1 укажите адрес Indeed MFA (mfa.dev.indcloud.ru).
  3. В параметре guid и signature выставите значения, которые были скопированы из консоли администрирования (GUID и ключ соответственно).
  4. Выставите ldap_port в значении 389 для LDAP и 636 для LDAPS.
  5. Если используете LDAP, то ldap_ssl = no, иначе - yes.
  6. В полях login, password укажите данные от сервисной учетной записи для чтения каталога, login указывается в формате distinguishedName.
  7. Укажите search_base, для ограничения чтения каталога AD.
  8. В поле groups укажите группы пользователей для синхронизации, можно указать несколько в формате ["Common Name1", "Common Name2", ...]
  9. Завершите редактирование config.ini с сохранением изменений.

Загрузите образ в Docker:
sudo docker load -i lsa-<версия>.tar.gz

Запуск контейнера без сертификата (LDAP), при запуске измените путь до вашего расположения конфигурационных файлов, в примере используется путь /opt/indeedmfa/lsa/:
docker run -d --network host --name lsa --restart always \
-e TZ=Europe/Moscow \
-v /opt/indeedmfa/lsa/data/:/opt/lsa/data \
-v /opt/indeedmfa/lsa/config.ini:/opt/lsa/config.ini \
-v /opt/indeedmfa/lsa/active_directory.map:/opt/lsa/active_directory.map \
-t lsa:1.14.261125

Запуск контейнера с использованием сертификата (LDAPS п. 2.4.1.), при запуске измените путь до вашего расположения конфигурационных файлов, в примере используется путь /opt/indeedmfa/lsa/:
docker run -d --network host --name lsa --restart always \
-e TZ=Europe/Moscow \
-v /opt/indeedmfa/lsa/data/:/opt/lsa/data \
-v /opt/indeedmfa/lsa/config.ini:/opt/lsa/config.ini \
-v /opt/indeedmfa/lsa/active_directory.map:/opt/lsa/active_directory.map \
-v /opt/indeedmfa/lsa/DC.cer:/usr/local/share/ca-certificates/DC.cer \
-t lsa:1.14.261125

Проверить работу можно, используя команду:
docker logs lsa

Также изменения должны отобразиться в консоли администрирования во вкладке Пользователи.

6. Token Validation Proxy

TVP — это промежуточный агент, который принимает запросы на многофакторную аутентификацию от других агентов Indeed MFA и передает их в облачный сервис Indeed MFA.

Для работы самого Indeed MFA агент TVP не является обязательным компонентом: небольшую инфраструктуру можно подключить напрямую к облачному сервису.

TVP прослушивает входящие HTTPS-запросы от агентов Indeed MFA. По умолчанию используется порт: 9443/TCP

6.1. Что потребуется

  • Linux-сервер для размещения TVP
  • права root или возможность использовать sudo 
  • Docker Engine (см. здесь)
  • дистрибутив TVP
  • сетевой доступ от TVP к Indeed MFA
  • сетевой доступ от агентов интеграции к TVP
  • для защищенного соединения потребуются сертификаты (см. здесь)

6.2 Добавление узла аутентификации

В административной консоли Indeed MFA:

  1. Войдите под учетной записью оператора виртуального сервера.
  2. Откройте вкладку Виртуальные серверы.
  3. Выберите нужный виртуальный сервер.
  4. Перейдите на вкладку Настройки.
  5. Разверните раздел Узлы аутентификации.
  6. Нажмите Добавить.
  7. Укажите понятное имя и внешний IP адрес машины.

  8. Сохраните настройки.

6.3. Установка и настройка TVP

Скопируйте файлы TVP на Linux-сервер, например в каталог: /opt/indeedmfa/tvp

Откройте файл: sudo nano /opt/indeedmfa/tvp/config.py

Пример конфигурации для TVP:

Краткое описание минимальных настроек:

  1. С помощью настроек bypass_mode и bypass_result можно регулировать настройки аварийного режима обхода второго фактора. (False - TVP передает запросы в Indeed MFA; True - TVP не выполняет обычную проверку MFA и возвращает bypass_result)
  2. Дополнительная информация для отладки доступна при включении параметра debug.
  3. sas_address_1 - основной адрес облачного сервиса Indeed MFA. sas_address_2 можно указать такое же значение, как в предыдущем параметре.
  4. verisy_ssl управляет проверкой сертификата сервера Indeed MFA. В примере выставлено значение True для работы с сертификатом, в ином случае выставите False.

Загрузите образ в Docker:
sudo docker load -i lsa-<версия>-indeed.tar.gz

Запуск контейнера без сертификата, при запуске измените путь до вашего расположения конфигурационных файлов, в примере используется путь /opt/indeedmfa/tvp/:
docker run -d --network host --name tvp --restart always \
-v /opt/indeedmfa/tvp/config.py:/var/www/indeed/app/config.py \
-t tvp:1.0.270326-indeed

Запуск контейнера с использованием сертификата, при запуске измените путь до вашего расположения конфигурационных файлов, в примере используется путь /opt/indeedmfa/tvp/. Важно, что имена сертификата и ключа должны быть такими же:
docker run -d --network host --name tvp --restart always \
-v /opt/indeedmfa/tvp/config.py:/var/www/indeed/app/config.py \
-v /opt/indeedmfa/tvp/tessis-CA.crt:/usr/local/share/ca-certificates/tessis-CA.crt \
-v /opt/indeedmfa/tvp/indeed.key:/etc/ssl/private/indeed.key \
-v /opt/indeedmfa/tvp/indeed.pem:/etc/ssl/certs/indeed.pem \
-t tvp:1.0.270326-indeed

Проверить работу можно, используя команду (в команде, вызывается пуш в приложение Indeed Key):
curl -k -L -d "login=<логин пользователя>&passcode=p" -X POST https://<адрес сервера TVP>:9443/auth/

7. Indeed Logon

Indeed Logon — это агент многофакторной аутентификации для операционных систем Microsoft Windows. Он устанавливает в систему собственный Credential Provider — поставщик учетных данных Indeed MFA.

После настройки пользователь сначала вводит имя учетной записи и пароль Windows, а затем подтверждает вход вторым фактором.

Важное предупреждение перед установкой!

Перед включением агента необходимо:

  1. Проверить доступ Windows-машины к Indeed MFA или TVP.
  2. Убедиться, что тестовый пользователь синхронизирован с Indeed MFA.
  3. Назначить пользователю рабочий аутентификатор. (см. здесь)
  4. Проверить правильность системного времени.
  5. Иметь доступ к локальной или доменной административной учетной записи.
  6. Не закрывать текущий административный сеанс до завершения тестирования.
  7. Выполнить проверку через CredUITester.exe до включения агента.
  8. Убедиться, что для административных учетных записей включено исключение из MFA.

Если Indeed Logon будет обращаться к Indeed MFA напрямую, то добавьте внешний IP-адрес Windows машины в узлы аутентификации. В случае настройки через TVP, необходимо добавить IP-адрес или FQDN Linux (имя, на которое был выписан сертификат) машины с установленным агентом TVP.

7.1. Установка и настройка Indeed Logon

Для работы Logon Manager требуется Microsoft .NET Desktop Runtime версии 8. При первом открытии Logon Manager, система потребует установку и предложить открыть официальный сайт для скачивания.

Для установки загрузите дистрибутив Indeed Logon на целевую машину и выполните установку Indeed Logon <версия>.msi.

После установки на рабочем столе появится ярлык: Logon Manager. Именно через него выполняется основная настройка Indeed Logon. На этом этапе не включайте параметр Агент активнет, пока не будет настроено и протестировано соединение.

Запустите приложение Logon Manager от имени администратора.

  • Настройки
  • Связь с сервером
  • Аутентификация

Настройте подключение во вкладке Связь с сервером. Пример настройки с использованием TVP с проверкой сертификата:

  • Укажите First SAS address и Second SAS address, в примере указан внутренний адрес TVP и порт 9443, но можно указать mfa.indeed-cloud.ru.
  • Включите проверку сертификата Verify SSL, если используете TVP важно, чтобы корректно была настроена работа с сертификатами (см. здесь)
  • Перед проверкой соединения до серверов примените изменения, нажав Apply.

Проверка соединения осуществляется нажатием на кнопку Test

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

На вкладке Settings выставите значение Mobile Push для параметра Auto Challenge

Примените изменения, нажав Apply.

Запустите приложение CredUITester.exe, расположенное по пути C:\Program Files\Indeed Logon, для проверки работоспособности аутентификации пользователя. Выберите способ аутентификации Indeed MFA, укажите логин пользователя в формате UserPrincipalName и пароль от учетной записи.

Если все сделано правильно, то пуш-уведомление для аутентификации должно прийти на телефон в приложение Indeed Key.

После проверки вернитесь в LogonManager и во вкладке Settings включите параметр Enable Agent и сохраните измения. (Внимание! Потребуется перезагрузка компьютера после включения агента)

После перезагрузки компьютера для входа в систему будет доступен Indeed MFA. Выбираем данный способ входа. При входе укажите логин пользователя в формате UserPrincipalName.

После ввода логина и пароля пуш-уведомление для аутентификации должно прийти на телефон в приложение Indeed Key.

8. FRA

FRA — это шлюз, через который системы с поддержкой протокола RADIUS подключаются к Indeed MFA.

FRA прослушивает порты 1812/UDP и 1813/UDP.

8.1. Что потребуется

Перед началом настройки подготовьте:

  • Linux-сервер с Docker Engine (см. здесь)
  • сетевой доступ от RADIUS-клиента до FRA
  • сетевой доступ от FRA до Indeed MFA или TVP
  • тестового пользователя, синхронизированного через LSA
  • назначенный пользователю аутентификатор (см. здесь)
  • общий RADIUS-секрет
  • IP-адрес системы, которая будет выступать RADIUS-клиентом
  • параметры LDAP для проверки доменного пароля

8.2. Установка и настройка FRA

В данном пункте будет рассматриваться интеграция с OpenVPN Access Server. Предполагается, что OpenVPN Access Server уже установлен и готов работе.

Скопируйте файлы FRA на Linux-сервер, например в каталог: /opt/indeedmfa/fra

Откройте файл: sudo nano /opt/indeedmfa/fra/clients.conf

Пример clients.conf:

  • Добавьте клиента с IP адресом машины FRA и RADIUS-секретом для будущих проверок работоспособности.
  • Добавьте клиента с IP адресом машины OpenVPN Access Server и RADIUS-секретом для интеграции.

Откройте файл: sudo nano /opt/indeedmfa/fra/config.ini

Пример конфигурации config.ini:

В блоке [connection] задайте адрес подключения до серверов Indeed MFA или до настроенного агента TVP.
Включите strip_netbios_prefix и strip_realm_from_upn для аутентификации по UserPrincipalName и с NetBIOS префиксом.
Включите debug режим.

В блоке [ssl] если используете TVP с корректно настроенными сертификатами, то выставите значение yes, иначе - no. В случае если FRA не использует TVP и обращается напрямую к mfa.indeed-cloud.ru, то выставите значние yes.

В блоке [preauth] находятся правила предварительной аутентификации. Более подробно с ними можно ознакомиться в нашей документации или в комментариях к этому блоку. В нашем случае подойдет простое правило для вызова пушей: rule[]=;;;p;2
Правило значит следующее: если на FRA пришел запрос на аутентификацию, то проверяем LDAP-пароль, после него вызываем проверку второго фактора в качестве мобильного push.


Снизу блока [preauth] находятся данные для LDAP проверки пароля.

  • Необходимо включить ldap_enable, указать в ldap_server_1 и ldap_server_2 адреса домен контроллеров.
  • Для защищеного режима LDAPS рекомендуется включить ldap_ssl и сменить порт в ldap_port на 636.
  • Укажите область поиска в search_base
  • Укажите логин сервисной учетной записи для чтения каталога (он использовался при настройке LSA) в формате distinguishedName в поле login.
  • Укажите пароль от сервисной учетной записи в поле password.

Загрузите образ в Docker:
sudo docker load -i fra-<версия>.tar.gz

Запуск контейнера, если контейнер обращается напрямую к Indeed MFA без TVP, при запуске измените путь до вашего расположения конфигурационных файлов, в примере используется путь /opt/indeedmfa/fra/:
docker run -d --network host --name fra --restart always \
-e TZ=Europe/Moscow \
-v /opt/indeedmfa/fra/config.ini:/etc/fra/config.ini \
-v /opt/indeedmfa/fra/clients.conf:/etc/freeradius/3.0/clients.conf \
-v /opt/indeedmfa/fra/logs/radius.log:/var/log/freeradius/radius.log \
-t fra:1.13.070726

Запуск контейнера, если контейнер обращается к Indeed MFA через TVP (необходимо дополнительно загрузить корневой сертификат центра сертификации, из которого был выписан сертификат для TVP), при запуске измените путь до вашего расположения конфигурационных файлов, в примере используется путь /opt/indeedmfa/fra/:
docker run -d --network host --name fra --restart always \
-e TZ=Europe/Moscow \
-v /opt/indeedmfa/fra/config.ini:/etc/fra/config.ini \
-v /opt/indeedmfa/fra/clients.conf:/etc/freeradius/3.0/clients.conf \
-v /opt/indeedmfa/fra/logs/radius.log:/var/log/freeradius/radius.log \
-v /opt/indeedmfa/fra/certs/CA.crt:/usr/local/share/ca-certificates/CA.crt \
-t fra:1.13.070726

Проверить работу можно, используя команду:
radtest -x -4 <Логин пользователя> <Доменный пароль> <IP адрес RADIUS сервера>:1812 0 Secret1

8.3. Интеграция FRA + OpenVPN Access Server

Перейдите в консоль администрирования OpenVPN Access Server, перейдите во вкладку Authentication, затем RADIUS

  • Включите Enable RADIUS authentication
  • Укажите IP адрес сервера FRA, общий секрет.
  • Authentication port - 1812
  • Accounting port - 1813
  • Выключите параметр Verify Message Authenticator attribute
  • Выберите, как метод аутентификации, PAP

Сохраните изменения и перезагрузите Access Server

Перейдите во вкладку General Settings и выберите в качестве Default authentication system сервер RADIUS. Сохраните изменения и перезагрузите Access Server

Проверка работы. Перейдите на клиентский портал OpenVPN Access Server и совершите вход под синхронизированной учетной записью

В приложении Indeed Key должно появиться подтверждение второго фактора.

На странице пользователя скачиваем VPN клиент и устанавливаем вместе с профилем пользователя.

При подключении к VPN система запрашивает пароль и второй фактор


После подтверждения второго фактора произойдет успешное подключение к VPN

9. LPA

LDAP Proxy Agent, или LPA, — это промежуточный сервер между целевой системой, использующей простую LDAP-аутентификацию, корпоративным каталогом и Indeed MFA.

9.1. Что потребуется

Перед установкой подготовьте:

  • Linux-сервер с Docker Engine (см. здесь)
  • доступ от целевой системы к LPA
  • доступ от LPA к Active Directory или FreeIPA
  • доступ от LPA к Indeed MFA или TVP
  • служебную LDAP-учетную запись
  • тестового пользователя, синхронизированного через LSA
  • назначенный пользователю аутентификатор (см. здесь)
  • сертификат для LDAPS (см. здесь)

9.2. Установка и настройка LPA

В данном пункте будет рассматриваться интеграция с OpenVPN Access Server. Предполагается, что OpenVPN Access Server уже установлен и готов работе.

Скопируйте файлы LPA на Linux-сервер, например в каталог: /opt/indeedmfa/lpa

Откройте файл: sudo nano /opt/indeedmfa/fra/config_ad.ini

Пример config_ad.ini:

Блок [ldap_proxy_connection]

  • Выставите значение no для параметра ldap_proxy_ssl
  • Для удобства отладки включите параметр debug

Блок [ldap_server_connection]

  • Укажите адреса домен контроллеров в параметрах ldap_server_1 и ldap_server_2
  • Включите параметры ldap_ssl и ldap_verify_ssl (потребуется корректная настройка сертификатов)
  • Укажите логин сервисной учетной записи для чтения каталога (он использовался при настройке LSA) в формате distinguishedName в поле login.
  • Укажите пароль от сервисной учетной записи в поле password
  • Укажите область поиска в search_base

  • Укажите адрес Indeed MFA или TVP в параметре sas_address_1
  • Выставите yes для параметров strip_netbios_prefix и strip_realm_from_upn
  • Включите параметр sas_verify_ssl
  • Для параметра token_type выставите значение p (для мобильного пуша в качестве второго фактора)

Загрузите образ в Docker:
sudo docker load -i lpa-<версия>-indeed.tar.gz

Запуск контейнера, при запуске измените путь до вашего расположения конфигурационных файлов, в примере используется путь /opt/indeedmfa/lpa/:

docker run -d --network host --name lpa --restart always \
-e TZ=Europe/Moscow \
-v /opt/indeedmfa/lpa/config_ad.ini:/opt/lpa/config.ini \
-v /opt/indeedmfa/lpa/certs/CA.crt:/usr/local/share/ca-certificates/CA.crt \
-t lpa:1.13.280426-indeed

Проверить работу можно, используя команду:
ldapsearch -d 5 -x -H ldap://<IP или FQDN LPA>:8389 -b "<Base Search>" -D "<distinguishedName УЗ для второго фактора>" -W

9.3. Интеграция LPA + OpenVPN Access Server

Перейдите в консоль администрирования OpenVPN Access Server, перейдите во вкладку Authentication, затем LDAP

  • Включите LDAP аутентификацию
  • Укажите в качестве Primary server адрес LPA

  • Включите Authenticate with username/password for initial bind. Disabling will bind anonymously.
  • Укажите distinguishedName сервисной учетной записи. (значение должно совпадать с параметром login конфигурационного файла config_ad.ini)
  • Укажите пароль от сервисной учетной записи
  • В поле Base DN for user entries укажите область поиска. (значние должно совпадать с параметром search_base конфигурационного файла config_ad.ini)

Сохраните изменения.

Перейдите на вкладку General Settings. В качестве метода аутентификации выберите LDAP и сохраните настройки.

9.4. Проверка интеграции OpenVPN Access Server + LPA

Перейдите на клиентский портал OpenVPN Access Server и совершите вход под синхронизированной учетной записью

В приложении Indeed Key должно появиться подтверждение второго фактора.

На странице пользователя скачиваем VPN клиент и устанавливаем вместе с профилем пользователя.

При подключении к VPN система запрашивает пароль и второй фактор


После подтверждения второго фактора произойдет успешное подключение к VPN

10. ADFS

Indeed MFA ADFS Agent — модуль дополнительной аутентификации для Microsoft Active Directory Federation Services. После установки он регистрируется в AD FS как внешний метод многофакторной аутентификации.

10.1. Что потребуется

Перед началом настройки проверьте:

  • сервер AD FS введен в домен и первоначально настроен
  • пользователи синхронизированы в Indeed MFA через LSA
  • пользователям назначены аутентификаторы (см. здесь)
  • TVP настроен и доступен, если он используется
  • системное время синхронизировано на всех серверах
  • имеется сертификат службы AD FS

10.2. Установка и настройка ADFS

В данном пункте будет рассматриваться интеграция с OpenVPN Access Server. Предполагается, что OpenVPN Access Server и службы AD FS уже установлены и готовы работе.

Скопируйте файлы ADFS на ADFS-сервер

Откройте файл MFASOFT.ADFS.dll.config для редактирования

Пример MFASOFT.ADFS.dll.config:

  • Для параметров sas_address_1 и sas_address_2 укажите адреса Indeed MFA или TVP.
  • В параметре auto_challenge установите значние p (для получения мобильного пуша в качетсве второго фактора)
  • Выставите "1" для парметра verify_ssl для проверки сертификата серверов SAS. При использовании TVP потребуется корректная настройка сертификатов.

Запустите PowerShell от имени администратора и запустите файл ./register.ps1 при первом добавлении метода аутентификации. При измении конфигурационного файла запустите файл ./change_settings.ps1

В оснастке AD FS перейдите в Служба→Методы проверки подлинности→Изменить Методы многофакторной проверки подлинности

Включите проверку подлинности Indeed Cloud ADFS и сохраните изменения.

10.3. Интеграция ADFS + OpenVPN Access Server

Перейдите в консоль администрирования OpenVPN Access Server, перейдите во вкладку Authentication, затем SAML.

Укажите в параметре Hostname адрес, по которому доступен Open VPN Access Server. Скопируйте и сохраните значения SP Identity и SP ACS.

В оснастке ADFS перейдите в Отношения доверия проверяющей стороны→Добавить отношение доверия проверяющей стороны

На странице Выбор источника данных выберите пункт Ввод данных о проверяющей стороне вручную

Укажите отображаемое имя

В поле Relying party SAML 2.0 SSO service URL вставьте точное значение SP ACS из OpenVPN

В разделе идентификаторов добавьте точное значение SP Identity

Выбираем Разрешение для каждого и запрос MFA

Завершите добавление отношений доверия проверяющей стороны

Для созданного отношения измените политику подачи запросов.

Добавьте первое правило:

  • Шаблон правила утверждения: Отправка атрибутов LDAP как утверждений
  • Имя правила: UPN
  • Хранилище атрибутов: Active Directory
  • Атрибут LDAP: User-Principal-Name
  • Тип исходящего утверждения: UPN

Добавьте второе правило:

  • Шаблон правила утверждения: Преобразование входящего утверждения
  • Имя правила: UPN to NameID
  • Тип входящего утверждения: UPN
  • Тип исходящего утверждения: ИД имени
  • Формат ИД исходящего имени: Электронная почта

Сохраните сертификат для подписи маркера в кодировке Base-64. Откройте сертификат в блокноте и скопируйте весь текст.

Перейдите в консоль администрирования OpenVPN Access Server в настройки SAML.

  • Выключите Send ForceAuthn и Send AuthnContexts
  • В поле IdP Entity ID укажите http://<ADFS сервер>/adfs/services/trust
  • В поле SSO Endpoint укажите https://<ADFS сервер>/adfs/ls/
  • Certificate - укажите скопированный сертификат из ADFS

Сохраните изменения и измените способ аутентификации на вкладке General Settings на SAML.

Для проверки работы перейдите на клиентскую страницу OpenVPN Access Server.

Войдите, используя SAML. В качестве логина укажите User Principal Name конечного пользователя.

11. Keycloak

Indeed MFA Keycloak Agent — модуль дополнительной аутентификации для Keycloak. Он добавляет в Keycloak собственный шаг аутентификации MFASOFT, который можно включить в Browser Flow выбранного Realm или отдельного клиента.

11.1. Что потребуется

Перед настройкой подготовьте:

  • установленный и работающий Keycloak
  • учетную запись администратора Keycloak
  • Realm с пользователями (в примере будет создан локальный пользователь в Keycloak)
  • установленный OpenVPN Access Server
  • пользователей, синхронизированных в Indeed MFA через LSA
  • назначенные пользователям аутентификаторы (см. здесь)
  • сетевой доступ от Keycloak к Indeed MFA или TVP
  • JAR-файл агента, соответствующий версии Keycloak
  • корневой сертификат корпоративного центра сертификации, если используется TVP с внутренним сертификатом
  • настройка узлов аутентификации (см. здесь)

11.2. Регистрация Keycloak в IndeedMFA

В административной консоли Indeed MFA:

  1. Войдите под учетной записью оператора виртуального сервера.
  2. Откройте вкладку Виртуальные серверы.
  3. Выберите нужный виртуальный сервер.
  4. Перейдите на вкладку Настройки.
  5. Разверните раздел Настройки Keycloak.
  6. Нажмите Добавить.
  7. Укажите понятное имя 
  8. Сохраните настройки.
  9. Скопируйте и сохраните GUID

11.3. Устнановка и настройка Keycloak

В данном пункте будет рассматриваться интеграция с OpenVPN Access Server. Предполагается, что OpenVPN Access Server и Keycloak уже установлены и готовы к работе.

Скопируйте файл с агентом соответсвующей версии (файл с расширением JAR) из дистрибутива KEYCLOAK в каталог provider, например: \$\{kc.home.dir\}/providers

Выполните сборку через команду: \$\{kc.home.dir\}/bin/kc.sh build 

Перезапустите сервис Keycloak: systemctl restart keycloak

Авторизуйтесь в консоли администрирования Keycloak, перейдите к нужному Realm. Рекомендуется создать отдельный Realm, чтобы не потерять доступ к Keycloak в случае ошибки настройки.

Перейдите к узлу Configure→Authentication, сделайте дубликат Browser flow. При создании дубликата укажите имя, например: IndeedMFA

На странице созданного flow нажмите Add execution, в поисковой строке укажите MFASOFT, выберите из списка MFASOFT, нажмите Add.

Нажмите в строке с элементом MFASOFT и укажите параметры, необходимые для взаимодействия с сервером аутентификации.

  • Alias - Имя элемента, например IndeedMFA
  • URI sas address 1 и URI sas address 2 - Адрес сервера аутентификации. В примере используется адрес Indeed MFA (https://mfa.indeed-cloud.ru), также можно использовать адрес TVP
  • Timeout for the request - Время ожидания ответа от сервера аутентификации в секундах
  • Time to restore to first sas - Время до перехода к первому SAS серверу
  • Verify ssl - Проверка SSL-сертификата при подключении к серверу аутентификации. При использовании адреса Indeed MFA параметр можно включить, при использовании TVP необходима корректная настройка сертификатов и корневой сертификат центра сертификации (см. здесь).
  • GUID Realm SAS - Идентификатор Realm, полученный из консоли администрирования IndeedMFA
  • Enable auto challenge - Автоматически вызывать запрос на аутентификацию при появлении окна для ввода второго фактора. В примере параметр включен
  • Select type token - Тип токена для Auto challenge. В примере выбран параметр Mobile PUSH

Сохраните настройки провайдера MFASOFT.
Перенесите MFASOFT внутрь блока IndeedMFA Soft, как на скриншоте. Необходимо, чтобы он был в конце этого блока. Также для MFASOFT
в выпадающем списке выберите тип Required.

Вернитесь в узел Configure→Authentication, в строке с элементом MFASOFTнажмите и выберите операцию Bind flow. В открывшемся окне выберите Browse flow.

Перейдите в консоль администрирования OpenVPN Access Server, перейдите во вкладку Authentication, затем SAML.

Укажите в параметре Hostname адрес, по которому доступен Open VPN Access Server. Скопируйте и сохраните значения SP Identity и SP ACS.

Создайте нового клиента во вкладке ManageClient listCreate client

Выберите SAML в качестве типа клиента, в поле Client ID укажите скопированное значение SP Identity из OpenVPN Access Server. Назовите клиента "OpenVPN Access Server" или по своему усмотрению. Перейдите на следующую страницу.

Укажите в качесвте Valid redirect URIs значение https://<IP или FQDN адрес OpenVPN>/*

В поле Master SAML Proccesing URL укажите скопированное значение SP ACS из OpenVPN Access Server. Отсальные настройки оставьте по умолчанию и сохраните клиента.

Откройте созданного клиента и отключите Client signature required

В созданном клиенте перейдите во вкладку Client scopes и в выпадающем меню для role_list выставите Optiontal

Перейдите Realm Settings General Endpoints: выберите SAML 2.0 Identity Provider Metadata. Откроется страница в браузере, скопируйте URL страницы и сохраните.

Вернитесь в консоль администрирования OpenVPN Access Server, перейдите во вкладку Authentication, затем SAML. Выключите Send ForceAuthn и Send AuthnContexts. Нажмите на кнопку Configure using metadata URL/file, вставьте скопированную ссылку с метаданными в окрывшееся окно и нажмите Get. Данные должны автоматически подставиться.

Сохраните изменения и измените способ аутентификации на вкладке General Settings на SAML.

Для проверки работы перейдите на клиентскую страницу OpenVPN Access Server. Выбираем использовать SAML для аутенификации.

Указываем логин и пароль пользователя, синхронизированного в облако. Этот пользователь также должен быть в Keycloak

Подтверждаем второй фаткор и успешно входим

12. NPS Extension

NPS Extension — расширение для службы Microsoft Network Policy Server, которое добавляет проверку второго фактора Indeed MFA к RADIUS-аутентификации.

12.1. Что потребуется

Перед началом подготовьте:

  • Windows Server, введенный в домен
  • установлена роль NPS на сервер
  • доступ к Active Directory
  • установочный пакет Indeed NPS Extension 1.0.0713.msi
  • установленный .NET Desktop Runtime 8.0.x
  • пользователя, синхронизированного через LSA
  • назначенный пользователю аутентификатор (см. здесь)
  • работающий TVP либо прямой доступ к Indeed MFA
  • OpenVPN Access Server для интеграции
  • общий RADIUS-секрет

12.2. Установка и настройка NPS Extension

В данном пункте будет рассматриваться интеграция с OpenVPN Access Server. Предполагается, что OpenVPN Access Server и NPS уже установлены и готовы к работе.

Загрузите файл Indeed NPS Extension <версия>.msi

Перейдите в оснастку NPS, создайте Radius-клиента, с данными от OpenVPN Access Server.

Укажите понятное имя, адрес и общий секрет.

Создайте новую политику в сетевых политиках.

Добавьте условие Ограничение по дням недели и времени суток и разрешите подключение в любое время.

Выставите Доступ разрешен в окне разрешения доступа. Для методов проверки подлинности разрешите PAP.

Завершите создание политики с стандартными остальными настройками.

Скопируйте файл Indeed NPS Extension <версия>.msi на сервер NPS и выполните его установку. По завершению установки на рабочем окне отобразится ярлык приложения NPS Manager. Это приложение для конфигурирования параметров агента NPS. Данное приложение необходимо запускать из-под учетной записи администратора. В случае, если при первом запуске, системой будет выдано сообщение «You must install .Net Desktop Runtime to run this application», необходимо перейти по ссылке, указанной в сообщении, выполнить скачивание и установку .Net Desktop Runtime. после установки необходимо повторно выполнить запуск приложения NPS Manager.

Перейдите во вкладку Связь с сервером, укажите адреса SAS - адрес IndeedMFA или TVP. При использовании Indeed MFA необходимо добавить сервер NPS, как узел аутентификации (см. здесь).
Включите параметр Проверять SSL при указании IndeedMFA, как SAS адреса. При использовании TVP необходимо корректно настроить работу с сертификатами (см. здесь).

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

Пример настроек, в примере указан SAS адрес Indeed MFA:

После успешной проверки связи с сервером вернитесь на вкладку Настройки, включите режим отладки, использование LDAP-аутентификации и авто-вызов в виде мобильного пуша. Активируйте агент и примените настройки. После применения настроек произойдет автоматический перезапуск службы NPS.

Перейдите в консоль администрирования OpenVPN Access Server, перейдите во вкладку Authentication, затем RADIUS

  • Включите Enable RADIUS authentication
  • Укажите IP адрес сервера NPS, общий секрет.
  • Authentication port - 1812
  • Accounting port - 1813
  • Выключите параметр Verify Message Authenticator attribute
  • Выберите, как метод аутентификации, PAP

Сохраните изменения и перезагрузите Access Server

Перейдите во вкладку General Settings и выберите в качестве Default authentication system сервер RADIUS. Сохраните изменения и перезагрузите Access Server

Проверка работы. Перейдите на клиентский портал OpenVPN Access Server и совершите вход под синхронизированной учетной записью

В приложении Indeed Key должно появиться подтверждение второго фактора.

На странице пользователя скачиваем VPN клиент и устанавливаем вместе с профилем пользователя.

При подключении к VPN система запрашивает пароль и второй фактор


После подтверждения второго фактора произойдет успешное подключение к VPN

(4 голос(а))
Эта статья полезна
Эта статья бесполезна