- Начало работы
- Интеграция
- HTTP API
- Single Sign-On
- OpenID Connect
- RADIUS адаптер
- LDAP адаптер
- Портал самообслуживания
- MULTIFACTOR Directory Sync
- Windows Logon
- Регистрация пользователей
- .NET Core
- 1с-Bitrix24
- 1с-плагин двухфакторной аутентификации
- 1С:Предприятие с системой единого входа на базе OIDC
- ADFS
- ASP.NET
- Ansible AWX
- Atlassian Cloud
- BearPass
- BI.ZONE ZTNA
- Check Point VPN
- Cisco ASA VPN
- Citrix Gateway
- Deckhouse Stronghold
- Exchange ActiveSync
- FortiGate VPN
- HRBOX
- Huawei Cloud
- Huawei VPN
- Ideco
- Infrascope
- Grafana
- Keycloak
- Let's Encrypt Windows Server
- Linux logon (GUI/SSH)
- Linux SSH
- Linux SUDO
- Microsoft Entra ID
- MikroTik L2TP VPN
- NGate VPN
- Network Policy Server (NPS)
- Nextcloud
- OpenVPN
- OpenVPN + AD
- OpenVPN Access Server
- OpenVPN pfSense
- Outlook Web Access (OWA)
- Palo Alto GlobalProtect
- Passwork
- RD Gateway (RDGW)
- RdWeb
- Redmine
- Starvault
- Solar SafeInspect
- UserGate VPN
- VMware Horizon Cloud
- VMware Horizon View
- VMware vCloud Director
- VMware vSphere
- Vault
- ViPNET
- Windows VPN
- WordPress
- Yandex.Cloud
- Yandex 360
- Zabbix
- АйТи-Бастион
- Континент 4 VPN
- Кибер Бэкап
- МТС Линк
- С-Терра VPN
- Точка доступа Wi-Fi
- ФПСУ-IP/Клиент
- Пользовательское соглашение об использовании программного обеспечения «МУЛЬТИФАКТОР»
- Политика в отношении обработки персональных данных при использовании сайта https://multifactor.ru/
- Пользовательское соглашение об использовании мобильного приложения «MULTIFACTOR»
- Политика в отношении обработки персональных данных
- Согласие на обработку персональных данных пользователей сайта https://multifactor.ru/
- Лицензионное соглашение
- Политика оплаты
- Результаты проведения специальной оценки условий труда (СОУТ)
Настройка двухфакторной аутентификации ADFS
Общая информация
В статье описывается настройка Active Directory Federation Services (ADFS) для доступа к корпоративным приложениям.
Возможные способы аутентификации:
Мобильное приложение MultifactorTelegramСМСБиометрияАппаратные OTP токеныПриложения OTP: Google Authenticator или Яндекс.Ключ
Видео-презентация
Схема работы
- Пользователь открывает корпоративное приложение;
- ADFS запрашивает логин первый фактор аутентификации: логин и пароль, проверяет корректность указанных данных и, если данные верны, переходит ко второму этапу аутентификации;
- На втором этапе открывается окно проверки второго фактора MULTIFACTOR, в котором пользователю предлагается подтвердить доступ;
- Пользователь подтверждает второй фактор доступа и переходит к работе с приложением.
Для настройки второго фактора аутентификации вам потребуется установить и настроить на сервере ADFS компонент MULTIFACTOR.ADFS.Adapter. Компонент разработан и поддерживается компанией МУЛЬТИФАКТОР, распространяется бесплатно вместе с исходным кодом. Актуальная версия находится на GitHub (архив release.zip):
Лицензия
Обратите внимание на лицензию. Она не даёт вам право вносить изменения в исходный код Компонента и создавать производные продукты на его основе. Исходный код предоставляется в ознакомительных целях.
Требования для установки
- Серверная ОС Windows Server 2016 или выше.
- Компоненту необходим доступ к хосту api.multifactor.ru по TCP порту 443 (TLS) напрямую или через HTTP прокси;
- На сервере должно быть установлено правильное время.
Настройка MULTIFACTOR
- В системе управления MULTIFACTOR добавьте новый ресурс «Веб-сайт», после чего Вам будут доступны ключи API Key и API Secret. Используйте формат токена доступа JwtHS256.
Настройка ADFS
- Загрузите и распакуйте архив на сервер с ADFS.
- Отредактируйте файл конфигурации MultiFactor.ADFS.Adapter.dll.config: пропишите ключи доступа из личного кабинета MULTIFACTOR
- Запустите PowerShell скрипт install.ps1 с правами администратора.
- Зайдите в консоль управления ADFS, в разделе «Authentication methods» -> «Multi-factor Authentication Methods» включите метод MULTIFACTOR.
- В разделе Relying Party Trusts отредактируйте Access Policy для приложений, где необходимо включить 2FA.
Защита от сбоев
В случае недоступности (по любой причине) API MULTIFACTOR, адаптер может работать в одном из двух вариантов:
- Пропускать без второго фактора (по умолчанию)
- Отказывать в доступе
Для настройки используется следующий параметр:
<!--Enable bypass second factor when api unreachable (default: true)--> <!--<add key="bypass-second-factor-when-api-unreachable" value="false"/>-->
Обновление
Шаги по переустановке\обновлению плагина:
- Отключите MULTIFACTOR в AD FS в Service → Authentication Methods → Edit Multi-Factor Authenntication Methods
- Задайте ключи для подключения к серверу аутентификации в MultiFactor.ADFS.Adapter.dll.config
- Запустите uninstall.ps1
- Запустите install.ps1
- Включите MULTIFACTOR в AD FS
Логирование
Каналы логирования
Windows Event Log
- Журнал:
Application. - Источник:
MultiFactor. - Источник создаётся скриптом
install.ps1, если он ещё не существует. - Запись содержит текст сообщения, исключение и код события.
Файловый журнал
Путь к файлу: %ProgramData%\MultiFactor\Logs\multifactor-adfs-YYYYMMDD.log
Особенности:
- новый файл создаётся ежедневно;
- несколько worker-процессов ADFS записывают события в общий файл;
- данные сбрасываются на диск с интервалом в одну секунду;
Если указан log-file-max-size-bytes, после достижения лимита запись в текущий дневной файл прекращается до следующего дня. Дополнительный файл по размеру не создаётся.
Syslog
Поддерживаются адреса:
udp://host:port tcp://host:port
Важно
Ошибка настройки syslog не останавливает адаптер. Syslog отключается, а Windows Event Log и файловый журнал продолжают работать.
Для TCP можно включить TLS. В текущей реализации проверка сертификата отключена. Это означает, что соединение шифруется, но цепочка сертификата и имя syslog-сервера не проверяются.
Коды событий
Информационные события
Код |
Уровень |
Сообщение |
Значение |
|---|---|---|---|
|
Information |
|
Создан экземпляр адаптера. Событие записывается до чтения пользовательской конфигурации логирования, поэтому использует настройки по умолчанию. |
|
Information |
|
ADFS вызвал выгрузку authentication pipeline. Это штатное завершение работы экземпляра адаптера. |
|
Information |
|
Пользователь начал прохождение второго фактора. Адаптер сохраняет логин в контексте ADFS и начинает создавать запрос в MultiFactor API. |
|
Information |
|
Токен успешно проверен, пользователь сопоставлен с учётной записью ADFS и authentication claim сформирован. |
Предупреждения
Код |
Уровень |
Сообщение |
Значение |
|---|---|---|---|
|
Warning |
|
Второй фактор не принят. |
|
Warning |
|
В proof data отсутствует свойство |
|
Warning |
|
После ошибки API адаптер применил разрешённый настройками bypass и создал локальный временный токен. |
Ошибки
Код |
Уровень |
Сообщение |
Значение |
|---|---|---|---|
|
Error |
|
|
|
Error |
|
Ошибка API или клиента, не являющаяся |
|
Error |
|
Во время разбора или проверки токена возникло исключение. |
|
Error |
|
Необработанная ошибка authentication pipeline либо отсутствие пользователя в authentication context. |
|
Error |
|
Конфигурация отсутствует либо не может быть прочитана или применена. |
Параметры конфигурации
Параметры логирования необходимо настраивать в корневом файле конфигурации: MultiFactor.ADFS.Adapter.dll.config
Ключ |
Допустимые значения |
Значение по умолчанию |
Назначение |
|---|---|---|---|
|
|
|
Минимальный уровень для всех каналов. В поставляемом конфигурационном файле явно указан |
|
пусто, |
текстовый формат |
Формат файлового журнала. Неизвестное значение включает текстовый формат. |
|
неотрицательное целое число |
без ограничения |
Максимальный размер текущего дневного файла. Пустое или нечисловое значение означает отсутствие ограничения. Отрицательное значение может привести к |
|
|
syslog выключен |
Адрес syslog-сервера. |
|
значения |
|
Формат сообщения, например RFC5424 или RFC3164. |
|
значения |
|
Syslog facility. |
|
строка |
|
Значение app-name. |
|
значения |
|
Framing для TCP. Для UDP не используется. |
|
|
|
Включение TLS для TCP. Для UDP не используется. |
Важно
парсер уровня принимает сокращения
InfoиWarn, но не отдельные вариантыInformationиWarning. Неизвестное значение приводит к уровню Information. Например, значениеWarningфактически включит Information.
Форматы файлового журнала
Текстовый формат
Используется, если logging-format отсутствует или содержит неизвестное значение.
Шаблон по умолчанию:
{Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{Level:u3}] [{EventId}] {Message:lj}{NewLine}{Exception}
Json
Стандартный JSON-формат для структурированного логирования.
JsonTz
Компактный JSON со следующими полями:
@t— локальная дата и время со смещением часового пояса;@m— отрендеренное сообщение;@mt— исходный шаблон сообщения;@l— уровень, кроме Information;@x— исключение и stack trace;- остальные структурированные свойства события.
ElasticCommonSchema
JSON в формате Elastic Common Schema.
Если что-то не работает
- Если возникают ошибки при установке плагина, проверьте, что установочный скрипт вы выполняете от имени администратора;
- Для работы в кластерной конфигурации компонент необходимо установить на все серверы кластера;
- Ошибки, связанные с работой компонента, можно посмотреть на сервере ADFS в журнале Windows: в разделе Applications с источником MULTIFACTOR, а также в разделе ADFS;
- Если не прогружается iframe с окном второго фактора, а в консоли браузера вы видите ошибку:

Refused to frame 'https://access.multifactor.ru/' because it violates the following Content Security Policy directive: "default-src 'self'". Note that 'frame-src' was not explicitly set, so 'default-src' is used as a fallback."
То добавьте домен access.multifactor.ru в исключения политики безопасности содержимого, разрешая ему открываться во фрейме. Это можно сделать следующей PowerShell командой, запущенной от роли администратора:
Set-AdfsResponseHeaders -SetHeaderName "Content-Security-Policy" ` -SetHeaderValue "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data:; frame-src access.multifactor.ru"
Важно
Если в настройках ресурса включен режим совместимости, то PowerShell команда, запущенная от роли администратора будет следующей:
Set-AdfsResponseHeaders -SetHeaderName "Content-Security-Policy" ` -SetHeaderValue "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data:; frame-src access-old.multifactor.ru"
Вопросы и ответы
Как сопоставить атрибуты из AD в качестве логина пользователя (например mailaddress)?
После настройки компонента, следуйте следующим шагам:
1. Откройте оснастку ADFS Management.
2. Перейдите в Trust Relationships → Claims Provider Trusts.
3. Найдите запись Active Directory (это встроенный Claims Provider)
4. Кликните правой кнопкой → Edit Claim Rules...
Вы увидите встроенные правила, которые уже там есть.
Добавьте новое правило следующим образом:
1. Нажмите Add Rule...
2. Выберите шаблон Send LDAP Attributes as Claims и укажите название правила.
Настройте правило:
1) В графе LDAP Attribute укажите кастомный атрибут extensionAttribute10.
2) В графе Outgoing claim type укажите E-Mail Address 
Благодаря данным настройкам теперь E-Mail Address будет передаваться в качестве логина.
Смотрите также
- Регистрация пользователей в MULTIFACTOR
- Настройка двухфакторной аутентификации Windows Remote Desktop