Категория: Windows
4950
5 1 1 1 1 1 1 1 1 1 1 Rating 5.00 (3 Votes)
multiotp provider install3
 
На днях озадачился вопросом в отношении одноразового пароля, мультифакторной / двухфакторной аутентификацией в Windows. Что по факту - нужно при входе в Windows помимо пароля пользователя вводить дополнительный пароль из Google Authenticator. Итак, что нужно:

Установка MultiOTP

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"

Генерация ключей MultiOTP

Так как я работаю на Linux, то и ключи буду генерировать в Linux, для начала нужно создать 160-битный hex ключ, я создаю ключ в 20 символов так:
for i in $(seq 1 20); do echo -n $(echo "obase=16; $(($RANDOM % 16))" | bc); done; echo
После конвертнуть его в base32 (спасибо за подсказку @determination):
echo `echo MYKEY | xxd -r -p | base32`
  1. Первый ключ - нужен для MuliOTP в момент создания пользователя
  2. Второй - для Google Auth

Создание пользователя MultiOTP

Далее создаем пользователя 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

Установка OTP провайдера

Устанавливаем MultiOneTimePasswordCredentialProviderSetup-*** в процессе установки необходимо включить параметр Default Provider
 
multiotp provider install
 
Указать путь к папке MupliOTP
 
multiotp provider install2

Установка / Использование Google Auth

Проверка OTP перед выходорм из системы

Перед выходом из системы, обязательно проверям работоспособность:
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

Облегчение жизни Linux админу

После всех манипуляций написал bash скрипт который сводит все действия на нет, при этом пишет лог по создаваемым пользователям. Результат работы скрипта выглядит примрно так:
 
multiotp provider install4
 
В результате:
Есть вопросы? Иди на форум или сюда