В нашей прошлой статье мы рассказывали о настройке двухфакторной аутентификации в VMware Horizon View на основе PKI-инфраструктуры и x509-сертификатов. Сегодня рассмотрим другой вариант 2FA-аутентификации — одноразовые пароли (OTP). Использование PKI-технологии, возможно, более надежное, но в наш век всеобщей мобильности и тенденции BYOD, когда пользователям нужно получать доступ к информационным ресурсам с любых устройств, включая мобильные, использование технологии PKI не всегда удобно, а иногда совсем невозможно. Поэтому аутентификация по одноразовым паролям (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.


Далее введите пароль.


Выберете нужный десктоп или приложение.




На этом всё.

Комментарии (3)


  1. nmk2002
    14.11.2017 13:22

    С чем связано, что вы рекомендуете использовать PAP, а не MSCHAPv2?
    Как по мне, более интересна аутентифкация по протоколу SAML. В этом случае есть большая вариативность методов аутентификации, а не только то, что можно завернуть в RADIUS.


    1. shuralev Автор
      14.11.2017 18:41

      Наш сервер аутентификации (JAS) пока SAML не поддерживает, по этому RADIUS


      1. nmk2002
        15.11.2017 09:21

        Да, я знаю, что ваш сервер аутентификации не поддерживает SAML. Самое близкое к SAML, что у вас есть, это WS-Federation. Я просто высказал свое мнение, что интереснее для VMware Horizon View была бы интеграция по SAML. Это открывает свободу в выборе методов аутентификации и позволяет легко менять и комбинировать методы. К тому же, коммуникации между сервисом и сервером аутентификации защищены, в отличии от RADIUS-PAP. Кстати вы не ответили про PAP: почему выбор пал именно на него? Или JAS тоже только его поддерживает?