Сегодня я хочу написать о том, как можно реализовать авторизацию и вход по смарт-картам или USB токенам в VMware View. Это описание моего опыта и, конечно же, я не претендую на истину в последней инстанции, поэтому жду любых комментариев.
Клиент VMware View может пробрасывать USB устройства в том числе и смарт-карты, при этом как в клиентской машине так и в удаленной должны быть установлены драйвера устройства для считывания карты и ПО для работы со смарт-картами. В моём случая это Aladdin eToken PKI Client версии 5.1 и следующие устройства:
-
HP USB Smart Card Reader
-
HP USB Keyboard with SMART Card Reader
-
HASP USB Token
Драйвера устройств и ПО были установлены без проблем как на удаленные так и на клиентские машины, в том числе и на тонкого клиента HP 5730 c WinXP Embeded SP3.
Смею предположить что у вас уже есть домен, Active Directory, Certification Authority и сертификаты на карточках, если нет то вам сюда: TechNet Microsoft.Com, так как это отдельная, объемная тема.
Как вы знаете, в домене Windows уже есть возможность реализовать Smart Card Logon при помощи групповых политик, зачем же заморачиваться и делать это для VMware View? Это может улучшить безопасность использования удаленных машин. Это может понадобиться в связи с политиками безопасности организации. Это позволит применять Smart Card Logon для машин, где политиками Windows это не установлено. А может быть просто интересно как это работает.
Итак, первое что я сделал, это заменил сертификат, который используется для поднятия SSL соединения между клиентом и View Connection Server. Сертификат может быть выписан на сервер, содержать полное имя и быть в формате .pfx, то есть содержать Private Key. Для того чтобы экспортировать такой сертификат в файл, это должно быть разрешено шаблоном в Certification Authority – в шаблоне сертификатов компьютера должна стоять галочка:
После того как файл сертификата есть, нужно положить его в папку:
C:\Program Files\VMware\VMware View\Server\sslgateway\conf
В этой же папке создать файл locked.properties и в нем прописать строчки:
keyfile=<имя файла>.pfx
keypass=<ключевя фраза>
После чего перезапустить службу View Connection Server. Для того чтобы убедиться что служба запущена и используется именно ваш сертификат можно посмотреть лог в папке C:\Documents and Settings\All Users\Application Data\VMware\VDM\logs\
13:57:40,676 INFO <Thread-1> [NetHandler] Using SSL certificate store: <имя файла>.pfx with password of 6 characters
Либо подключиться Internet Explorer к адресу View Connection Server и увидеть значок замка в адресной строке:
Теперь SSL соединение строиться с использованием сертификата вашей организации и клиенты ему доверяют.
Далее необходимо будет “сказать” VMware View кому можно доверять при авторизации по сертификатам, то есть по смарт-картам.
Сделать это можно будет следующим образом:
- Создать файлик Truststore – хранилище ключей
- Разрешить Smart Card Logon в настройках View Connection Server.
Для того чтобы создать файл Truststore, можно воспользоваться утилитой keytool из Java Runtime Environment (JRE), который устанавливается с VMware View, но чтобы было удобно воспользоваться ей из командной строки нужно добавить путь к файлам Java в переменные окружения сервера:
- Открываем Properties компьютера.
- На вкладке Advanced нажимаем кнопку Environment Variables
- В системной переменной Path, в конце строки добавляем следующее:
;%ProgramFiles%\VMware\VMware View\Server\jre\bin
Мы готовы создать хранилище ключей но нужно что-то в это хранилище положить, а для этого нам понадобятся файлы сертификатов в формате .cer, которым будет доверять View Connetction Server. Это может корневой сертификат центра сертификации либо пользовательский сертификат, который можно сохранить в файл либо через оснастку certmgr.msc либо следующим образом:
- Запустить IE открыть Tools > Internet Options
- На вкладке Content кликаем Certificates.
- Выбираем сертификат и нажимаем на View
- На вкладке Details нажимаем Copy to File.
- Сохраняем в удобном месте, можно сразу в папке C:\Program Files\VMware\VMware View\Server\sslgateway\conf
Теперь добавляем сертификат в хранилище ключей нашего View Connection Server:
- Открываем cmd.exe
- переходим в C:\Program Files\VMware\VMware View\Server\sslgateway\conf
- И набираем следующую команду:
keytool -import -alias <Псевдоним_по_желанию> -file <Файл_сертификата>
-keystore <Имя_файла_хранилища>
4. Далее нас попросят ввести пароль и спросят доверять ли импортируемому сертификату.
5. Теперь добавляем у уже созданный ранее файл locked.properties следующие строчки:
trustKeyfile=<Имя_файла_хранилища>
trustStoretype=JKS
useCertAuth=true
Теперь включение функции Smart Card Logon в настройках View Connection Server:
- Открываем web-консоль администратора View.(/admin">/admin">https://<server_name>/admin).
- Идем в Configuration –> Servers, выбираем View сервер и нажимаем Edit.
VMware View позволяет применять три варианта использования смарт-карт:
- Не использовать
(Вход только по паролю пользователя)
- Опционально (По паролю или смарт-карте)
- Требовать смарт-карту (Вход только по смарт-карте)

3. Выбираем нужный (для проверки советую поставить 3 вариант) нажимаем OK и перезапускаем службу View Connection Server.
После перезапуска смотрим лог и видим:
<Front> [d] Smart Card/Certificate Authentication enabled at gateway
Теперь можно попробовать как это работает:
Запускаем клиента VMware View и если карта не вставлена а в настройках выбрана 3 опция то видим следующие предупреждение:
Вставляем карту и видим запрос PIN кода нашей карты:
Вводим PIN и можем выбирать доступную нашему пользователю ВМ, после логона в которую, смарт-карта автоматически пробрасывается и уже там мы видим запрос PIN кода:
Ну а дальше все как обычно.
Ну и на на последок хочется сказать что VMware предоставляет нам возможность управлять различными параметрами подключения к ВМ при помощи групповых политик компьютера и пользователя, шаблоны для которых предусмотрительно копируются при установке VMware View в папку:
C:\Program Files\VMware\VMware View\Server\Extras\GroupPolicyFiles
Их можно использовать применяя как локальные на удаленные машины так и импортировав шаблоны в доменные групповые политики.
Добавить их можно при помощи оснастки gpedit.msc:
![clip_image001[5] clip_image001[5]](http://blog.vis.kz/wp-content/uploads/2009/12/clip_image0015_thumb1.png)
По кнопке Add добавляем файлы шаблонов:
![clip_image001[7] clip_image001[7]](http://blog.vis.kz/wp-content/uploads/2009/12/clip_image0017_thumb1.png)
![clip_image001[9] clip_image001[9]](http://blog.vis.kz/wp-content/uploads/2009/12/clip_image0019_thumb1.png)
Нажимаем Close.
![clip_image001[11] clip_image001[11]](http://blog.vis.kz/wp-content/uploads/2009/12/clip_image00111_thumb1.png)

Теперь в нашей ВМ появились политики, которые позволяю, например запретить подключаться к ВМ отличным от VMware View клиетом, например MS RDP, и при подключении клиентом MS Remote Desktop Connection к ВМ мы увидим следующее:
![clip_image001[13] clip_image001[13]](http://blog.vis.kz/wp-content/uploads/2009/12/clip_image00113_thumb1.png)
Так же есть политики по отключению звука, запрету USB устройств или Хранение PIN-кода карточки для последующей передачи его при входе в Windows, так чтобы для пользователя не приходилось вводить его два раза. Все политики имеют достаточно внятное описание, поэтому советую с ними ознакомиться. На этом пока все и надеюсь кому-то помог.