Описание
Simple2FA Credential Provider добавляет второй фактор (Push-уведомление, TOTP или Telegram-бот) к штатному входу в Windows по паролю. Провайдер работает как обёртка над системным парольным провайдером: пользователь вводит пароль как обычно, после чего подтверждает вход вторым фактором.
Второй фактор запрашивается при входе в систему, разблокировке экрана и подключении по RDP (каждый сценарий включается отдельно в настройках). Если у пользователя второй фактор ещё не настроен, на экране входа выводится QR-код со ссылкой на мастер настройки.
Пароль Windows проверяется локально на рабочей станции и на сервер Simple2FA не передаётся.
Схема работы:
- Пользователь выбирает свою учётную запись на экране входа и вводит пароль Windows.
- Провайдер проверяет пароль локально. При неверном пароле вход отклоняется сразу — запрос второго фактора не отправляется.
- Провайдер запрашивает у сервера Simple2FA метод второго фактора пользователя.
- Пользователь подтверждает вход: нажимает подтверждение в Push-уведомлении или Telegram-боте либо вводит код TOTP в поле на экране входа.
- После успешной проверки обоих факторов Windows завершает вход.
Требования
- Windows 10 версии 1809 и новее либо Windows 11 (x64 или ARM64);
- права администратора на рабочей станции;
- сетевой доступ рабочих станций к серверу Simple2FA по HTTPS.
Дополнительные среды выполнения (VC++ Redistributable и т.п.) на целевых машинах не требуются.
Подготовка в Simple2FA
Войдите в административную панель локального модуля Simple2FA. Перейдите в раздел «Настройка ресурсов» и создайте новый ресурс:
- Название: Вход в Windows (или любое удобное).
- Протокол: HTTP.
- API Key: ключ ресурса, который будет указан в настройках провайдера на рабочих станциях. Создается автоматически.
- Проверять первый фактор: выключить — пароль Windows проверяется локально на рабочей станции и в Simple2FA не передаётся.
Также убедитесь, что:
- в глобальных настройках указан корректный API key для связи локального модуля с облаком;
Настройка пакета установки
Пакет установки содержит папку installer со скриптами, файлом настроек, библиотекой провайдера и шаблонами для групповых политик. Перед установкой заполните файл настроек installer\install.settings.psd1:
@{
BackendBaseUrl = 'https://2fa.corp.example' # URL сервера Simple2FA, без / в конце
ApiKey = 'REPLACE_WITH_RESOURCE_API_KEY'
OfflineMode = 'open' # open: вход по паролю при недоступном сервере; closed: запрет
EnrollPolicy = 'block' # block: QR и запрет входа; grace: QR и разрешение входа
UiLanguage = 'ru' # ru | en
HideOtherProviders = $true # скрыть пароль/PIN/Hello/биометрию; требует перезагрузки
VerifyPasswordFirst = $true # проверять пароль Windows до второго фактора
RequireOnUnlock = $true # второй фактор при разблокировке
RequireOnRdp = $true # второй фактор при входе по RDP
UacMode = $false # второй фактор при повышении прав (UAC)
}
Основные параметры:
- BackendBaseUrl — адрес сервера Simple2FA;
- ApiKey — API Key из карточки ресурса Simple2FA;
- OfflineMode — поведение при недоступном сервере: open разрешает вход по одному паролю, closed запрещает вход;
- EnrollPolicy — поведение для пользователей без настроенного второго фактора: block показывает QR-код и блокирует вход, grace показывает QR-код и разрешает вход;
- HideOtherProviders — скрывает остальные способы входа (PIN, Windows Hello, отдельную плитку пароля), закрывая обход второго фактора через «Параметры входа»; вступает в силу после перезагрузки.
Установка на одну машину
Запустите установку с автоматическим повышением прав (запрос UAC появится сам):
powershell -ExecutionPolicy Bypass -File .\installer\run_install.ps1
Параметры берутся из файла настроек. При необходимости их можно переопределить в командной строке:
powershell -ExecutionPolicy Bypass -File .\installer\run_install.ps1 ` -BackendBaseUrl https://2fa.corp.local -ApiKey "<Resource.api_key>"
Журнал последней установки сохраняется в installer\install-last.log.
Установщик идемпотентен: если та же версия и те же настройки уже применены, он завершается без изменений. После установки с HideOtherProviders требуется перезагрузка.
Важно: перед развёртыванием на парк машин проверьте установку на снимке виртуальной машины — некорректно настроенный провайдер входа может заблокировать доступ к системе.
Развёртывание через групповые политики
Провайдер устанавливается на парк машин startup-скриптом групповой политики:
- Скопируйте папку installer из пакета установки в каталог политики в SysVol.
- Заполните install.settings.psd1.
- В редакторе GPO откройте Computer Configuration → Policies → Windows Settings → Scripts (Startup/Shutdown) → Startup → PowerShell Scripts → Add и укажите install.ps1. Параметры не требуются — они берутся из файла настроек.
- Примените политику и перезагрузите машины.
Благодаря идемпотентности установщика скрипт можно оставить выполняться при каждой загрузке. В составе пакета также поставляются шаблоны ADMX/ADML для управления параметрами через редактор групповых политик.
Проверка работы
- Заблокируйте экран или выйдите из системы,
- Выберите свою учётную запись и введите пароль Windows (первый фактор),
- Получите запрос второго фактора (Push, TOTP или Telegram-бот),
- Подтвердите второй фактор,
- После подтверждения вход в Windows будет выполнен.
Результат каждой попытки входа доступен в веб-консоли Simple2FA в разделе «Попытки авторизации».
Для диагностики на рабочей станции используйте скрипт из состава пакета:
powershell -ExecutionPolicy Bypass -File .\installer\diagnose.ps1
Скрипт выводит версию провайдера, состояние регистрации, текущую конфигурацию и последние события журнала приложений.
Безопасность
- Пароль Windows проверяется локально и на сервер Simple2FA не передаётся.
- Неверный пароль отклоняется до отправки второго фактора — Push и Telegram-подтверждения не приходят на чужие попытки входа.
- Секреты в журналы не записываются.
- Режим OfflineMode=closed запрещает вход при недоступном сервере — для сценариев, где доступность второго фактора критична.
Ограничения
- Вход через плитку «Другой пользователь» (без выбора учётной записи) не поддерживается.
- При использовании TOTP вход выполняется в два нажатия: сначала пароль, затем код. Push и Telegram подтверждаются одним нажатием после ввода пароля.
Удаление
powershell -ExecutionPolicy Bypass -File .\installer\uninstall.ps1
Скрипт снимает регистрацию провайдера, удаляет каталог установки и возвращает стандартные способы входа. После удаления рекомендуется перезагрузка.