В нашей прошлой статье мы рассказывали о настройке двухфакторной аутентификации в VMware Horizon View на основе PKI-инфраструктуры и x509-сертификатов. Сегодня рассмотрим другой вариант 2FA-аутентификации — одноразовые пароли (OTP). Использование PKI-технологии, возможно, более надежное, но в наш век всеобщей мобильности и тенденции BYOD, когда пользователям нужно получать доступ к информационным ресурсам с любых устройств, включая мобильные, использование технологии PKI не всегда удобно, а иногда совсем невозможно. Поэтому аутентификация по одноразовым паролям (OTP) набирает всё большую популярность.
Реализация OTP в нашем примере основана на продукте нашей компании. Это сервер аутентификации — JaCarta Authentication Server (JAS). В качестве аутентификатора (средства генерации OTP) могут выступать:
Поддерживаются следующие алгоритмы генерации OTP:
Также существует возможность подключить СМС-шлюз и получать одноразовые пароли в виде СМС-сообщений.
Как и в прошлый раз предполагается, что VDI в рамках VMware Horizon View уже развернут и настроен на простую парольную аутентификацию. Также уже установлен и настроен сервер JAS и NTP-плагин для него. А для пользователей заведены программные или аппаратные токены. Об установке и настройке JAS у нас есть большой скучный документ, входящий в комплект поставки.
Далее мы покажем как легко и просто связать имеющийся сервер JAS с сервером VMware Horizon View и реализовать OTP-аутентификацию.
На сервере, где установлен JAS и NPS-плагин, перейдите в оснастку Network Policy Server и добавьте новый RADIUS Client.
Задайте Friendly name, IP-адрес Horizon View Connection Server и общий Shared secret.
Перейдите на сервер VMware View, откройте консоль администрирования View Connection Server.
Перейдите в View Configuration -> Servers ->Connection Servers.
Выберите необходимый сервер аутентификации и нажмите кнопку Edit.
В открывшемся окне перейдите во вкладку Authentication. В разделе Advanced Authentication 2-factor authentication выберите из выпадающего меню RADIUS.
Снимите чек-боксы со значений Enforce 2-factor and Windows user name matching и Use the same user name and password for RADIUS and Windows authentication.
Нажмите кнопку Manage Authenticators. В новом окне кликните по кнопке Add…
Заполните поля Label — Название сервера, отображаемое клиенту, Hostname/address — адрес NPS-сервера с OTP-плагином, Shared Secret. Authentication type – PAP.
Теперь настройка окончена, необходимо выполнить проверку.
Запустите VmWare Horizon Client (это может быть на ОС Windows, Linux и MacOS) и подключитесь к серверу.
После подключения к серверу будет отображено диалоговое окно входа с требованием ввода имени пользователя и OTP (поле Passcode).
Откройте google authenticator для получения OTP-значения.
После успешной аутентификации по OTP будет произведен запрос на вход по имени пользователя и паролю.
Запрос OTP->Password происходит именно в такой последовательности, а не наоборот. Это сделано для защиты пароля от подбора.
С мобильного телефона все будет выглядеть похожим образом. Ниже пример на iOS (Android также поддерживается).
В начале запустите приложение Horizon и подключитесь к серверу.
Сервер запросит OTP.
Переключитесь на Google authenticator, запомните OTP-значение.
Переключитесь на Horizon введите OTP.
Далее введите пароль.
Выберете нужный десктоп или приложение.
На этом всё.
Реализация OTP в нашем примере основана на продукте нашей компании. Это сервер аутентификации — JaCarta Authentication Server (JAS). В качестве аутентификатора (средства генерации OTP) могут выступать:
- программный токен (google authenticator для смартфонов под управлением iOS, Android, Windows);
- физический токен с USB-портом (JaCarta WebPass, Yubikey и другие);
- физический токен без USB-порта (eToken Pass и другие).
Поддерживаются следующие алгоритмы генерации OTP:
- RFC 4226 + HMAC-SHA-1 (6 символов);
- RFC 4226 + HMAC-SHA-256 (6 символов);
- RFC 4226 + HMAC-SHA-256 (7 символов);
- RFC 4226 + HMAC-SHA-256 (8 символов).
Также существует возможность подключить СМС-шлюз и получать одноразовые пароли в виде СМС-сообщений.
Как и в прошлый раз предполагается, что VDI в рамках VMware Horizon View уже развернут и настроен на простую парольную аутентификацию. Также уже установлен и настроен сервер JAS и NTP-плагин для него. А для пользователей заведены программные или аппаратные токены. Об установке и настройке JAS у нас есть большой скучный документ, входящий в комплект поставки.
Далее мы покажем как легко и просто связать имеющийся сервер JAS с сервером VMware Horizon View и реализовать OTP-аутентификацию.
Ход настройки
На сервере, где установлен JAS и NPS-плагин, перейдите в оснастку Network Policy Server и добавьте новый RADIUS Client.
Задайте Friendly name, IP-адрес Horizon View Connection Server и общий Shared secret.
Перейдите на сервер VMware View, откройте консоль администрирования View Connection Server.
Перейдите в View Configuration -> Servers ->Connection Servers.
Выберите необходимый сервер аутентификации и нажмите кнопку Edit.
В открывшемся окне перейдите во вкладку Authentication. В разделе Advanced Authentication 2-factor authentication выберите из выпадающего меню RADIUS.
Снимите чек-боксы со значений Enforce 2-factor and Windows user name matching и Use the same user name and password for RADIUS and Windows authentication.
Нажмите кнопку Manage Authenticators. В новом окне кликните по кнопке Add…
Заполните поля Label — Название сервера, отображаемое клиенту, Hostname/address — адрес NPS-сервера с OTP-плагином, Shared Secret. Authentication type – PAP.
Теперь настройка окончена, необходимо выполнить проверку.
Проверка работоспособности с ноутбука
Запустите VmWare Horizon Client (это может быть на ОС Windows, Linux и MacOS) и подключитесь к серверу.
После подключения к серверу будет отображено диалоговое окно входа с требованием ввода имени пользователя и OTP (поле Passcode).
Откройте google authenticator для получения OTP-значения.
После успешной аутентификации по OTP будет произведен запрос на вход по имени пользователя и паролю.
Запрос OTP->Password происходит именно в такой последовательности, а не наоборот. Это сделано для защиты пароля от подбора.
Проверка работоспособности с мобильного устройства
С мобильного телефона все будет выглядеть похожим образом. Ниже пример на iOS (Android также поддерживается).
В начале запустите приложение Horizon и подключитесь к серверу.
Сервер запросит OTP.
Переключитесь на Google authenticator, запомните OTP-значение.
Переключитесь на Horizon введите OTP.
Далее введите пароль.
Выберете нужный десктоп или приложение.
На этом всё.
nmk2002
С чем связано, что вы рекомендуете использовать PAP, а не MSCHAPv2?
Как по мне, более интересна аутентифкация по протоколу SAML. В этом случае есть большая вариативность методов аутентификации, а не только то, что можно завернуть в RADIUS.
shuralev Автор
Наш сервер аутентификации (JAS) пока SAML не поддерживает, по этому RADIUS
nmk2002
Да, я знаю, что ваш сервер аутентификации не поддерживает SAML. Самое близкое к SAML, что у вас есть, это WS-Federation. Я просто высказал свое мнение, что интереснее для VMware Horizon View была бы интеграция по SAML. Это открывает свободу в выборе методов аутентификации и позволяет легко менять и комбинировать методы. К тому же, коммуникации между сервисом и сервером аутентификации защищены, в отличии от RADIUS-PAP. Кстати вы не ответили про PAP: почему выбор пал именно на него? Или JAS тоже только его поддерживает?