- Начало работы
- Интеграция
- HTTP API
- OpenID Connect
- RADIUS протокол
- RADIUS адаптер
- LDAP адаптер
- Портал самообслуживания
- MULTIFACTOR Directory Sync
- Windows Logon
- Регистрация пользователей
- .NET Core
- 1с-Bitrix24
- 1с-плагин двухфакторной аутентификации
- ADFS
- ASP.NET
- Ansible AWX
- Atlassian Cloud
- BearPass
- Check Point VPN
- Cisco ASA VPN
- Citrix Gateway
- FortiGate VPN
- HRBOX
- Huawei Cloud
- Huawei VPN
- Ideco UTM
- Keycloak
- Let's Encrypt Windows Server
- Linux logon (GUI)
- 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)
- Passwork
- RD Gateway (RDGW)
- Redmine
- UserGate VPN
- VMware Horizon Cloud
- VMware Horizon View
- VMware vCloud Director
- VMware vSphere
- Vault
- ViPNET
- Windows VPN
- Yandex.Cloud
- Yandex 360
- Zabbix
- АйТи-Бастион
- Континент 4 VPN
- МТС Линк (бывш. webinar.ru)
- WordPress
- С-Терра VPN
- Точка доступа Wi-Fi
- ФПСУ-IP/Клиент
Настройка двухфакторной аутентификации на сервере Windows со службой RD Gateway
В статье описывается настройка Windows сервера для включения двухфакторной аутентификации при подключении удаленного рабочего стола (RDP) со службой RD Gateway.
RD Gateway — компонент Windows сервера, позволяющий подключаться к рабочему столу через шлюз, который выполняет функции VPN, а именно создает зашифрованное подключение по протоколу TLS.
Применимо к версиям:
Windows Server 2012 R2
Windows Server 2016
Windows Server 2019
Возможные способы аутентификации:
Мобильное приложение Multifactor
Telegram
Звонок (нужно принять вызов и нажать #)
Видео-презентация
Схема работы
- Пользователь подключается к удаленному рабочему столу через шлюз RD Gateway;
- RD Gateway проверяет логин, пароль, политику авторизации ресурсов (RAP) и переадресовывает запрос в Network Policy Server (NPS);
- NPS получает запрос от RD Gateway, запрашивает второй фактор аутентификации по RADIUS протоколу в компоненте MULTIFACTOR Radius Adapter;
- Мультифактор отправляет на телефон пользователя запрос подтверждения входа;
- Пользователь подтверждает запрос в телефоне и подключается к VPN.
Дополнительные возможности:
- настройка доступа на основе принадлежности пользователя к группе в Active Directory;
- избирательное включение второго фактора на основе принадлежности пользователя к группе в Active Directory;
- использование телефона пользователя из профиля Active Directory для звонка на мобильный телефон;
Требования к серверу
- На сервере должны быть установлены и настроены компоненты Remote Desktop Gateway и Network Policy and Access Service.
- На сервере с NPS необходимо установить компонент MULTIFACTOR Radius Adapter.
- Для работы Мультифактора серверу необходим доступ к хосту api.multifactor.ru по порту 443 (TLS).
Настройка MULTIFACTOR
- Зайдите в административную панель, далее в раздел "Ресурсы" и создайте новый ресурс типа "ОС / Сервер" - "Windows RD Gateway";
- Заполните "Название", "Адрес" и "Язык" по вашему усмотрению, установите переключатель в "Запретить доступ" в разделе "При подключении без настроенного второго фактора";
- После создания вам будут доступны два параметра: NAS Identifier и Shared Secret, они потребуются для следующего шага.
- Разверните компонент MULTIFACTOR Radius Adapter, настройте файл конфигурации следующим образом
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="RadiusReply" type="MultiFactor.Radius.Adapter.RadiusReplyAttributesSection, MultiFactor.Radius.Adapter" /> </configSections> <appSettings> <!-- This service radius server endpoint --> <add key="adapter-server-endpoint" value="127.0.0.1:1812"/> <!-- Shared secret between this service and radius client --> <add key="radius-shared-secret" value="SHARED_SECRET"/> <add key="first-factor-authentication-source" value="None"/> <!-- Multifactor API --> <add key="multifactor-api-url" value="https://api.multifactor.ru"/> <add key="multifactor-nas-identifier" value="NAS Identifier из личного кабинета Мультифактора"/> <add key="multifactor-shared-secret" value="Shared Secret из личного кабинета Мультифактора"/> <!-- Minimal log level: 'Debug', 'Info', 'Warn', 'Error' --> <add key="logging-level" value="Debug"/> <!-- Дополнительные настройки--> <!-- Active Directory domain --> <!-- <add key="active-directory-domain" value="domain.local"/> --> <!-- Разрешить доступ только пользователям группы AD --> <!-- <add key="active-directory-group" value="VPN Users"/> --> <!-- Проверять второй фактор только у пользователей из группы AD --> <!-- <add key="active-directory-2fa-group" value="2FA Users"/> --> </appSettings> </configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.Extensions.DependencyInjection.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.Extensions.Primitives" publicKeyToken="adb9793829ddae60" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.Extensions.Options" publicKeyToken="adb9793829ddae60" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Text.Encodings.Web" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" /> </dependentAssembly> </assemblyBinding> </runtime> </configuration>
Важно
Придумайте сложное значение SHARED_SECRET и запишите в конфигурационный файл.
Настройка NPS
- В разделе Remote RADIUS Server Groups создайте новую группу:
- Group name: MFA
- Нажмите Add:
- Server: 127.0.0.1
- Shared secret: ранее придуманный SHARED_SECRET
- Load Balancing: поставьте таймауты по 60 секунд

- В разделе Connection Requests Policies, откройте свойства политики TS GATEWAY AUTHORIZATION POLICY:
- На вкладке Settings:
- в разделе Authentication выберите вариант Forward requests to the following remote RADIUS server group for authentication: MFA
- На вкладке Settings:

Если что-то не работает
Для проверки принадлежности пользователя к группам безопасности Active Directory, адаптер должен быть запущен под пользователем, имеющим доступ на чтение к домену (обычно любой пользователь из домена).
Проверьте журнал Windows, раздел Custom Views -> Server Roles -> Network Policy And Access Services.
Проверьте журнал компонента MULTIFACTOR Radius Adapter.
Проверьте журнал MULTIFACTOR.
Смотрите также: