Перейти к основному содержимому

Настройка двухфакторной аутентификации на сервере Network Policy Server

Общая информация

В статье описывается настройка Microsoft Network Policy Server для включения двухфакторной аутентификации с одноразовым кодом доступа или PUSH уведомлением при подключении VPN клиентов, таких как Cisco AnyConnect, FortiClient VPN и других.

Применимо к версиям:

  • Windows Server 2012 R2
  • Windows Server 2016
  • Windows Server 2019

Возможные способы аутентификации:

  • Мобильное приложение MultiFactor
  • СМС
  • Аппаратные OTP токены
  • Приложения OTP: Google Authenticator или Яндекс.Ключ
  • Telegram

Для настройки второго фактора аутентификации вам потребуется установить и настроить MultiFactor Radius Adapter в режиме RADIUS прокси между клиентом и сервером NPS.

подсказка

Обратите внимание, в большинстве случаев вы можете отказаться от использования NPS, полностью заменив его на MultiFactor Radius Adapter.

Схема работы

  1. Radius клиент подключается к компоненту Radius Adapter.
  2. Компонент выполняет аутентификацию клиента в Network Policy Service.
  3. В случае успешной аутентификации запрашивает у пользователя подтверждение доступа вторым фактором.

Настройка Мультифактора

  1. Зайдите в систему управления Мультифактором, далее в раздел Ресурсы и создайте новый ресурс типа "Сетевой экран" - "Другой";
  2. Заполните "Название" и "Адрес" по вашему усмотрению. Параметр "При подключении без настроенного второго фактора" отвечает за возможность настроить второй фактор при подключении пользователя без настроенного второго фактора доступа;
  3. После создания вам будут доступны два параметра: NAS Identifier и Shared Secret, они потребуются для последующих шагов;

Настройка компонента MultiFactor Radius Adapter

Разверните компонент MultiFactor Radius Adapter на отдельном сервере, настройте файл конфигурации следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<!-- Адрес и порт (UDP) по которому адаптер будет принимать запросы на аутентификацию от клиентов -->
<!-- Если указать адрес 0.0.0.0, то адаптер будет слушать все сетевые интерфейсы -->
<add key="adapter-server-endpoint" value="0.0.0.0:1812"/>
<!-- Shared secret общий для клиента, адаптера и NPS -->
<add key="radius-shared-secret" value="SHARED_SECRET"/>
<!-- Где поверять первый фактор: RADIUS -->
<add key="first-factor-authentication-source" value="Radius"/>
<!-- Адрес, с которого адаптер будет обращаться в NPS -->
<add key="adapter-client-endpoint" value="192.168.0.1"/>
<!-- Адрес и порт NPS -->
<add key="nps-server-endpoint" value="192.168.0.1:1812"/>
<!-- 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 из личного кабинета Мультифактора"/>
<!-- Уровень логирования: 'Debug', 'Info', 'Warn', 'Error' -->
<add key="logging-level" value="Debug"/>
</appSettings>
</configuration>

Значение SHARED_SECRET должно быть одинаковое на VPN устройстве, адаптере и сервере NPS, чтоб компонент мог корректно проксировать запросы.

Если вы планируете установить адаптер на одном сервере с NPS, необходимо будет изменить порт, который слушает адаптер, чтоб не было конфликтов.

Настройка RADIUS сервера (NPS)

В разделе "RADIUS Clients" измените адрес клиента на адрес адаптера.

Настройка RADIUS клиента

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

Смотрите также: