Встановлення та налаштування MultiOTP у домені Active Directory
Спочатку створимо в Active Directory окрему групу та додаймо до неї користувачів, для яких ми вимагатимемо перевірку другого фактору при вході до Windows. Створимо групу за допомогою PowerShell:
New-ADGroup 2FAUsers -path 'OU=Users,DC=domain,DC=ua' -GroupScope Global -PassThru –Verbose New-ADGroup without2fa -path 'OU=Users,DC=domain,DC=ua' -GroupScope Global -PassThru –Verbose
група “2FAUsers” – для користувачів з 2FA
група “without2fa” — для користувачів без 2FA
В обидві групи одного і того ж користувача додавати не можна.
Сервер multiotp обов’язково повинен знати всіх користувачів як з 2FA, так і без 2FA. Інакше без 2FA він не пустить.
Додаємо користувачів до групи:
Add-AdGroupMember -Identity 2FAUsers -Members user1, user2, user3
Створіть в AD нового користувача multiotp_srv, який використовуватиметься multiotp для доступу до AD (з мінімальними привілеями).
$passwd = ConvertTo-SecureString -String "Qwerty1" -AsPlainText -Force New-ADUser -Name "multiotp_srv" -SamAccountName "multiotp_srv" -UserPrincipalName "multiotp_srv@domain.ua" -Path "OU=ServiceAccounts,OU=Users,DC=domain,DC=ua" –AccountPassword $passwd -Enabled $true
Завантажте архів із файлами MultiOTP із сайту розробників https://download.multiotp.net/.
Відкрийте архів multiotp_5.9.7.1.zip і витягніть з нього каталог windows до папки на локальному диску (C:\MultiOTP).
Відкрийте командний рядок та перейдіть до каталогу з утилітою multiotp.exe:
CD C:\MultiOTP\windows
Наступними командами ми налаштуємо MultiOTP для отримання користувачів з каталогу Active Directory LDAP.
multiotp -config default-request-prefix-pin=0 multiotp -config default-request-ldap-pwd=0 multiotp -config ldap-server-type=1 multiotp -config ldap-cn-identifier="sAMAccountName" multiotp -config ldap-group-cn-identifier="sAMAccountName" multiotp -config ldap-group-attribute="memberOf" multiotp -config ldap-ssl=0 multiotp -config ldap-port=389
REM Адрес контролера домену.
multiotp -config ldap_domain_controllers=ldap://dc-1.domain.ua:389 multiotp -config ldap_base_dn=DC=domain,DC=ua
REM Обліковий запис для аутентифікації multiotp в AD:
multiotp -config ldap_bind_dn=CN=multiotp_srv,CN=Users,DC=domain,DC=ua multiotp -config ldap-server-password="1Qwerty1"
REM – група користувачів, для яких потрібно включити OTP
multiotp -config ldap-in-group="2FAUsers" multiotp -config ldap-without2fa-in-group=”without2fa” multiotp -config ldap-network-timeout=10 multiotp -config ldap-time-limit=30 multiotp -config ldap-activated=1
REM ключ для доступу до сервера MultiOTP.
multiotp -config server-secret=Qwertyu12!
Виконайте синхронізацію користувачів AD у MultiOTP.
multiotp -debug -display-log -ldap-users-sync
Для автоматичної синхронізації нових облікових записів у Active Directory потрібно створити завдання планувальника з командою запуску:
multiotp -debug -display-log -ldap-users-sync
Запустіть із правами адміністратора файл webservice_install.cmd. Це встановить веб-інтерфейс керування MultiOTP.
Зайдіть на веб-інтерфейс http://127.0.0.1:8112/ під обліковий запис admin із паролем 1234 (бажано змінити при вході).

Налаштування двофакторної аутентифікації MultiOTP для користувача домену
У розділі List of users буде доступний список користувачів домену, які були синхронізовані раніше (джерело AD/LDAP).

Виберіть користувача та натисніть Print. Перед вами з’явиться QR код користувача, який потрібно додати до програми-автентифікатора.

Встановіть на смартфон користувача програму Google Authenticator із Google Play або App Store. Запустіть його та відскануйте QR код користувача.
В результаті в програмі з’явиться обліковий запис користувача, в якому кожні 30 секунд генерується новий шестизначний цифровий пароль (тобто другий фактор).

Можна перевірити коректність роботи OTP із веб-інтерфейсу. Перейдіть до розділу Check a user, введіть ім’я користувача та одноразовий пароль.

Встановлення multiOTP CredentialProvider у Windows
Наступний етап – встановлення multiOTP-CredentialProvider на комп’ютери Windows, на яких ви хочете впровадити двофакторну автентифікацію користувачів за допомогою MultiOTP. CredentialProvider можна встановити на всі версії Windows 7/8/8.1/10/11 та Windows Server 2012(R2)/2016/2019/2022.
Завантажте та встановіть multiOTP CredentialProvider з https://download.multiotp.net/credential-provider/ завантажте multiOTPCredentialProvider-5.9.7.1.zip
Запустіть інсталяцію:
- Вкажіть IP-сервер, на якому було встановлено multiOTP
- Відкрити порт у фаєрволі на сервері та клієнті multiOTP. Відкрити порт у Windows Firewall на сервері можна за допомогою PowerShell:
New-NetFirewallRule -DisplayName "AllowMultiOTP" -Direction Inbound -Protocol TCP -LocalPort 8112 -Action Allow - У нижньому полі вкажіть секретне слово з конфігурації multiOTP (multiotp -config server-secret=Qwertyu12!)

- Далі виберіть обов’язково “disable 2FA prompt for multiTOP without2FA users”

- На наступному кроці я вибрав лише Logon > Only Remote

MultiOTP CredentialProvider зберігає налаштування в реєстрі HKEY_CLASSES_ROOT\CLSID{FCEFDFAB-B0A1-4C4D-8B2B-4FF4E0A3D978}. Якщо потрібно, ви можете змінити налаштування CredentialProvider без переустановки.

Перезавантажте Windows Server і спробуйте через RDP підключитися до нього. Тепер після відправлення імені та пароля користувача з’являється додаткове вікно one-time password. Тут користувач повинен ввести одноразовий пароль із програми Authenticator на своєму смартфоні.
Щоб не виникало помилок при роботі MultiOTP CredentialProvider я встановив Microsoft Visual C++ Redistributable for Visual Studio 2022:
Наступного разу я розповім як за допомогою PowerShell генерувати QR код для користувача і відправляти йому на пошту, введенням лише його логіну.


Привіт!
Дякую за потужний контент та ще й українською.
Ти топ!:)
Дякую. Радий поділитися знаннями.
дякую, класна стаття. Скажи будь ласка як можна налаштувати multiotp на Windows Server без домену?
Пізніше зроблю нову статтю.