Статьи и публикации

Настройка двухфакторной аутентификации в VMware Horizon View 7 c использованием смарт-карт JaCarta PKI

Интернет-портал Habrahabr.ru, октябрь, 2017
Статья Дмитрия Шуралёва, технического специалиста по работе с технологическими партнёрами компании "Аладдин Р.Д."

Недавно мы рассказывали, как настроить 2FA аутентификацию на основе PKI-инфраструктуры и x509 сертификатов в виртуальной среде Citrix, используя электронные ключи JaCarta PKI. Сегодня речь пойдёт о ближайшем "друге" Citrix XenDesktop в области доставки виртуальных рабочих столов и приложений – VMware Horizon View.

Как это работает?

Говоря простым языком, можно представить вот такую схему.

Двухфакторная аутентификация в VDI-сессию с использованием JaCarta PKI состоит из следующих шагов:

  1. пользователь предъявляет токен (первый фактор — обладание устройством) и вводит PIN-код (второй фактор — знание PIN-кода);
  2. на сервере происходит проверка учётных данных пользователя;
  3. пользователь получает десктоп\приложение либо отказ в обслуживании.

Причины "подружить" VMware Horizon View с электронными ключами, впрочем, как и любое внедрение 2FA, имеют ряд плюсов по сравнению с классической аутентификацией по паролям. В первую очередь, это общее повышение уровня безопасности, которое происходит за счёт отказа от паролей и перехода к строгой аутентификации с использованием второго фактора аутентификации. Подробно на этом останавливаться не будем, есть достаточно статей, да и целых книг по теме. Во вторых, раз уж аутентификация по токенам или смарт-картам внедрена, ими можно и нужно пользоваться уже внутри VDI-сессии. Например, для электронной подписи в различных сценариях и программах, для доступа к различным web-приложениям, для систем электронного документооборота и систем дистанционного банковского обслуживания. Есть возможность использования как западных крипто алгоритмов, так и отечественный ГОСТ. Также к дополнительным преимуществам можно отнести то, что одна и та же карта может использоваться для аутентификации, подписи и доступа в помещение (при наличии RFID-метки). При этом предусмотрены варианты кастомизации — нанесение лого и фирменного стиля. А в рамках спец. проектов существует возможность реализации на этих же картах платёжных приложений ("Мир", MasterCard, Visa).

Вводные

Предполагается, что инфраструктура открытых ключей уже развернута в рамках Windows Server (версия не важна) с ролью Active Directory Certificate Services. VDI развернут в рамках VMware Horizon View 7 (работаем и с 6.x и c 5.x) и настроен на простую парольную аутентификацию. Ещё одно условие — у пользователей имеются электронные ключи JaCarta с выпущенными на них цифровыми сертификатами от MSCA.

В качестве клиента используется любой ПК, тонкий клиент, ноутбук с установленным VMware Horizon Client.

Настройка

Вся настройка сводится к настройке сертификатов и включению опции аутентификации по сертификатам на сервере horizon view.

Экспорт корневого сертификата

Откройте оснастку Certification Authority на корневом ЦС, выполнив команду certsrv.msc

Откройте окно Certification Authority -> CA Name -> Properties

На вкладке General выберите корневой сертификат и нажмите кнопку View Certificate.

Перейдите на вкладку Details и нажмите кнопку Copy to File.

На странице выбора формата файла выберите Base-64 encoded X.509 (.CER)

Укажите путь экспорта файла, например, C:\temp\RootCA.cer

Создание файла-контейнера ключей JKS

На сервере VMware Horizon View откройте командную строку и перейдите в каталог с утилитой keytool.exe (C:\Program Files\VMware\VMware View\Server\jre\bin).

Импортируйте корневой сертификат в файл-хранилище с помощью команды keytool -import -alias alias -file root_certificate -keystore truststorefile.key, где alias – псевдоним (любое значение), root_certificate – полный путь к файлу сертификата, truststorefile.key – имя файла-хранилища.

В процессе импорта необходимо будет ввести парольную фразу для защиты хранилища и подтвердить доверие сертификату.

Файл-хранилище truststorefile.key необходимо скопировать в директорию SSL Gateway: install_directory\VMware\VMware View\Server\sslgateway\conf\truststorefile.key

В директории SSL Gateway (install_directory\VMware\VMware View\Server\sslgateway\conf\locked.properties) необходимо создать файл c именем locked.properties и отредактировать его (например, в блокноте) до следующего содержимого:

trustKeyfile= truststorefile.key
trustStoretype=JKS
useCertAuth=true

Сохраните файл и перезагрузите службу View Connection Server.

Настройка входа по сертификату

Зайдите в веб-консоль VMware Horizon View.

Перейдите в свойства сервера: Inventory → View Configuration → Servers → Connections Servers → Edit.

Перейдите на вкладку Authentication и выберите предпочтительный режим аутентификации.

Аутентификация в административную консоль по смарт-карте настраивается из выпадающего списка Smart card authentication for administrators:

  • Not Allowed – не использовать смарт-карту;
  • Optional – смешанная аутентификация – или по паролю, или по смарт-карте;
  • Required – обязательное использование смарт-карты.

Аутентификация пользователя в VDI по смарт-карте настраивается из выпадающего списка Smart card authentication for users:

  • Not Allowed – не использовать смарт-карту;
  • Optional – смешанная аутентификация – или по паролю или по смарт-карте;
  • Required – обязательное использование смарт-карты.

Опция Disconnect user sessions on smart card removal определяет политику при отключении смарт-карты. Установите галочку, если необходимо производить отключение сессии при изъятии смарт-карты.

Нажмите кнопку ОК.

Настройка проброса смарт-карты пользователя

Проброс смарт-карты пользователя позволяет производить прозрачную аутентификацию в виртуальную машину с вводом PIN-кода один раз.

При использовании тонких клиентов Teradici настройка, как правило, не требуется.

При использовании программных клиентов Windows, MacOS, Linux необходимо выполнить установку VMware View Agent с активацией опции Smartcard Redirection.

Проверка

Для проверки выполним вход в консоль администрирования Horizon View и на виртуальный рабочий стол

Вход в консоль администрирования

Вставьте смарт-карту и перейдите в консоль администрирования.

В появившемся окне формы входа выберите сертификат администратора и нажмите кнопку OK.

Отобразится запрос на ввод PIN-кода. После успешной проверки PIN, будет произведена аутентификация в веб-интерфейс.

Вход на виртуальный рабочий стол

На клиентском устройстве запустите VMware Horizon Client и выберите необходимое подключение.

Отобразится запрос на ввод PIN-кода.

После успешной аутентификации отобразятся доступные ресурсы.

Ну и убедимся, что смарт-карта пробросилась на доставленный десктоп.

На этом всё.