- Загрузить со страницы проекта MultiOTP последнюю версию MultiOTP
- Загрузить со страницы MultiOneTimePassword-CredentialProvider собственно провайдер
- В Windows настроить NTP синхронизацию (синхронизацию с интернет тайм-сервером)
На днях озадачился вопросом в отношении одноразового пароля, мультифакторной / двухфакторной аутентификацией в Windows. Что по факту - нужно при входе в Windows помимо пароля пользователя вводить дополнительный пароль из Google Authenticator. Итак, что нужно:
c:\ или в %programfiles%windows из содержимого архива multiotp_*** в созданную папкуhelp:cd c:\MultiOTP multiotp.exe -help Предварительные настройки, отключение пина, включение вывода:
multiotp.exe -debug -config default-request-prefix-pin=0 display-log=1Изменение имени провайдера (можно указать например имя своей компании или компьютера):
multiotp.exe -debug -config issuer="Sys-Adm.in"Так как я работаю на Linux, то и ключи буду генерировать в Linux, для начала нужно создать 160-битный hex ключ, я создаю ключ в 20 символов так:
for i in $(seq 1 20); do echo -n $(echo "obase=16; $(($RANDOM % 16))" | bc); done; echoПосле конвертнуть его в base32:
echo \`echo MYKEY | xxd -r -p | base32\`Далее создаем пользователя Windows:
net user /add testuser user-passwordСоздаем пользователя MultiOTP:
multiotp.exe -debug -create testuser TOTP HEX-KEY 6Создаем QR картинку для пользователя:
multiotp -qrcode testuser > c:\MultiOTP\users\testuser.pngУстанавливаем MultiOneTimePasswordCredentialProviderSetup-*** в процессе установки необходимо включить параметр Default Provider

Указать путь к папке MupliOTP

Перед выходом из системы, обязательно проверяем работоспособность:
multiotp.exe -display-log testuser GOOGLE-AUTH-KEYВ результате должно появиться сообщение об успешной проверке:
LOG 2018-02-08 notice (user testuser) User OK: User testuser successfully logged in with TOTP tokenСовершаем выход из системы, проверяем. Done!
Если OTP был создан только для одного пользователя, то вход можно осуществить только под ним, поэтому либо он должен быть админом на компе, либо нужно для Администора создать OTP
После всех манипуляций написал bash скрипт, который сводит все действия на нет, при этом пишет лог по создаваемым пользователям. Результат работы скрипта выглядит примерно так:

В результате: