- Загрузить со страницы проекта 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 скрипт, который сводит все действия на нет, при этом пишет лог по создаваемым пользователям. Результат работы скрипта выглядит примерно так:
В результате: