Microsoft remote desktop web client windows 10

В Windows Server 2022/2019/2016 с развёрнутыми службами Remote Desktop Services вы можете установить и настроить новый Remote Desktop Web Client HTML5. Этот веб клиент позволит любым устройствам (iOS, macOS, Android, Linux) получать доступ к вашим RemoteApp приложениям на RDS хостах прямо из любого браузера (не нужно устанавливать отдельный RDP клиент).

Содержание:

  • Установка RD Web HTML5 клиента на Windows Server RDS
  • Доступ к RDWeb серверу через браузер с HTML5
  • Возможные проблемы с веб клиентом Remote Desktop

[contents h2]

Remote Desktop Web Client доступен в виде расширения роли RD Web Access на RDS серверах под управлением Windows Server 2022/2019/2016.

Перед внедрением RD Web Client нужно убедится, что ваша RDS инфраструктура соответствует следующим требованиям:

  • Наличие развернутой инфраструктуры RDS (фермы Remote Desktop Services), включающей: шлюз Remote Desktop Gateway, RD Connection Broker и RD Web Access на Windows Server 2022/2019/2016;
  • Используются терминальные лицензии (RDS CAL) в режиме Per User;
  • На серверах RDS Gateway и Web Access должны использоваться SSL сертификаты, выданные доверенным CA. Поддерживаются бесплатные Let’s Encrypt сертификаты на RDS. Самоподписанные SSL сертификаты можно использовать в ограниченном режиме;

Установка RD Web HTML5 клиента на Windows Server RDS

HTML5 RD Web Client не входит в дистрибутив Windows Server. Вам нужно вручную установить модуль RD Web Client Management из галереи скриптов PowerShell.

Для этого установите модуль PowerShellGet на сервере с ролью RD Web Access:

Install-Module -Name PowerShellGet -Force

Перезапустите консоль PowerShell.exe и установите модуль RD Web Client Management:

Install-Module -Name RDWebClientManagement

Install-Module -Name RDWebClientManagement

Чтобы принять лицензионное соглашение Microsoft, введите A.

Теперь нужно установить последнюю версию пакета Web Remote Desktop:

Install-RDWebClientPackage

После установки пакета, проверьте его свойства командой:

Get-RDWebClientPackage

Get-RDWebClientPackage

Как вы видите, у вас появился пакет rd-html 5.0 версия 1.0.0.

Далее вам нужно экспортировать SSL сертификат с сервера с ролью RDS Connection Broker, использующийся для SSO (Enable Single Sign On) в .cer файл (формат BASE64).

  1. Запустите консоль управления сертификатами компьютера
    certlm.msc
    :
  2. Разверните раздел Personal -> Certificates;список установленных сертификатов RDS
  3. Найдите ваш сертификат, который используется в вашей RDS ферме, щелкните по нему правой кнопкой и выберите select All Tasks -> Export;экспорт сертфиката в cer файл
  4. Выберите формат экспорта Base-64 encoded X.509 (.cer) и укажите имя файла.

Импортируйте сертификат на сервере RD Web Access:

Import-RDWebClientBrokerCert C:\RDBroker.cer

Теперь можно опубликовать клиент RD Web:

Publish-RDWebClientPackage -Type Production -Latest

Publish-RDWebClientPackage

Для тестирования клиента RD Web, можно развернуть клиент с помощью команды:

Publish-RDWebClientPackage -Type Test -Latest

Клиент RD Web позволяет запускать RemoteApps в браузере или через локальный RDP клиент (в этом случае пользователь скачает *.rdp файл). Пользователь может сам выбрать нужные ему режим. Чтобы запуск разрешить RemoteApp только в браузере, выполните команду:
Set-RDWebClientDeploymentSetting -Name "LaunchResourceInBrowser" $true

Доступ к RDWeb серверу через браузер с HTML5

После того, как вы развернули пакет Web Client на RDS сервере, вы можете запустить браузер на клиентском компьютере. Поддерживаются все последние версии браузеров Microsoft Edge, Google Chrome, Safari, Mozilla Firefox. Для доступа к RDS серверам из браузера вам достаточно передать пользователям ссылку на сервер RDWeb.

Обязательно используйте FQDN имя сервера RD для подключения. Обратите внимание, что данное FQDN имя должно содержаться в вашем сертификате RDS развёртывания (проверьте поля Common Name/CN и Subject Alternative Names /SAN).

Откройте URL адрес:

_https://FQDN.server.name/RDWeb/webclient/index.html

Для доступа к тестовой среде используйте адрес:

_https://FQDN.server.name /RDWeb/WebClient-Test/index.html

Имя сервера должно соответствовать имени сервера RD Web Access в сертификате.

Авторизуйтесь на RDWeb сервере под своей учетной записью.

веб клиент rdp

При входе у вас будет запрошено какие локальные ресурсы должны быть доступны в RD сессии. Пока доступно только перенаправление буфера обмена и принтеров (локальные диск и USB устройства через веб-клиент RDP не пробрасываются, нужно использовать полноценный клиент mstsc.exe, RDCMan или аналоги).

rdp веб клиент - проброс локальных ресурсов в удаленную сессию

После успешного входа вы увидите все RemoteApp опубликованные в коллекциях. Вы можете переключаться между ними с помощью иконок в верхней части окна.

список RemoteApps в браузере html5

При запуске RemoteApp оно будет отображаться в браузере с возможностью развернуть окно на весь экран.

Печать из RD Web клиента осуществляется через виртуальный PDF принтер (Microsoft Print to PDF). Когда вы отправляете документ на печать в окне веб клиента, браузер предлагает скачать сформированный pdf файл. Вы можете открыть PDF файл а (PDF просмотрщик встроен в браузер Microsoft Edge) и распечатать на локальном принтере.

RD Web клиент печать через виртуальный PDF принтер

В HTML5 клиенте доступно динамическое изменение окна удаленного рабочего стола и возможность запуска в полноэкранном режиме. Через буфер обмена можно копировать только текст (файлы, графика через буфер веб клиента не копируются).

Возможные проблемы с веб клиентом Remote Desktop

При входе на RD Web Access вы видите список опубликованных приложений Remote App, но при попытке запуска любого из них появляется ошибка:

Oops, we could not connect to Calculator.
The connection to the remote PC was lost. This might be because of a network connection problem. If this keeps happening, ask your administrator or tech support for help.
Не удалось подключиться к Calculator
Потеряно подключение к удаленному компьютеру. Возможно, есть проблема с сетевым подключением. Если это будет повторяться, обратитесь за помощью к своему администратору или специалисту службы технической поддержки.

rd-web Потеряно подключение к удаленному компьютеру

Также может быть ошибка:

The web client needs a Remote Desktop Gateway to connect to desktops and apps.

web клиенту нужен rds gateway

Эти ошибки возникают, если вы развернули ферму RDS без шлюза RD Web Gateway. Если у вас развернут только RD Connection Broker, нужно привязать ваш сертификат RDS на порт 3392. (см описание в разделе Connecting to RD Broker without RD Gateway in Windows Server 2019 — https://learn.microsoft.com/en-us/windows-server/remote/remote-desktop-services/clients/remote-desktop-web-client-admin).

Ошибка:

Your session ended because an unexpected server authentication certificate was received from the remote PC. Ask your admin or tech support for help.
Ваш сеанс завершен, так как от удаленного компьютера получен непредвиденный сертификат проверки подлинности сервера. Обратитесь за помощью к своему администратору или специалисту службы технической поддержки.

rdwebaccess Ваш сеанс завершен, так как от удаленного компьютера получен непредвиденный сертификат проверки подлинности сервер

Проверьте корректность вашего RD сертификата (FQDN сервера, которые используется для запуска RD веб клиента должен содержаться в сертификате). Проверьте, что этот сертификат назначен на все роли в вашем развертывании RDS. Отдельно проверьте что этот сертификат задан в настройка сервера RDGW (вкладка SSL Certificates). Если возможно, используйте wildcard сертификат.

В Windows Server 2022/2019/2016 с развёрнутыми службами Remote Desktop Services вы можете установить и настроить новый Remote Desktop Web Client HTML5. Этот веб клиент позволит любым устройствам (iOS, macOS, Android, Linux) получать доступ к вашим RemoteApp приложениям на RDS хостах прямо из любого браузера (не нужно устанавливать отдельный RDP клиент).

Содержание:

  • Установка RD Web HTML5 клиента на Windows Server RDS
  • Доступ к RDWeb серверу через браузер с HTML5
  • Возможные проблемы с веб клиентом Remote Desktop

[contents h2]

Remote Desktop Web Client доступен в виде расширения роли RD Web Access на RDS серверах под управлением Windows Server 2022/2019/2016.

Перед внедрением RD Web Client нужно убедится, что ваша RDS инфраструктура соответствует следующим требованиям:

  • Наличие развернутой инфраструктуры RDS (фермы Remote Desktop Services), включающей: шлюз Remote Desktop Gateway, RD Connection Broker и RD Web Access на Windows Server 2022/2019/2016;
  • Используются терминальные лицензии (RDS CAL) в режиме Per User;
  • На серверах RDS Gateway и Web Access должны использоваться SSL сертификаты, выданные доверенным CA. Поддерживаются бесплатные Let’s Encrypt сертификаты на RDS. Самоподписанные SSL сертификаты можно использовать в ограниченном режиме;

Установка RD Web HTML5 клиента на Windows Server RDS

HTML5 RD Web Client не входит в дистрибутив Windows Server. Вам нужно вручную установить модуль RD Web Client Management из галереи скриптов PowerShell.

Для этого установите модуль PowerShellGet на сервере с ролью RD Web Access:

Install-Module -Name PowerShellGet -Force

Перезапустите консоль PowerShell.exe и установите модуль RD Web Client Management:

Install-Module -Name RDWebClientManagement

Install-Module -Name RDWebClientManagement

Чтобы принять лицензионное соглашение Microsoft, введите A.

Теперь нужно установить последнюю версию пакета Web Remote Desktop:

Install-RDWebClientPackage

После установки пакета, проверьте его свойства командой:

Get-RDWebClientPackage

Get-RDWebClientPackage

Как вы видите, у вас появился пакет rd-html 5.0 версия 1.0.0.

Далее вам нужно экспортировать SSL сертификат с сервера с ролью RDS Connection Broker, использующийся для SSO (Enable Single Sign On) в .cer файл (формат BASE64).

  1. Запустите консоль управления сертификатами компьютера
    certlm.msc
    :
  2. Разверните раздел Personal -> Certificates;список установленных сертификатов RDS
  3. Найдите ваш сертификат, который используется в вашей RDS ферме, щелкните по нему правой кнопкой и выберите select All Tasks -> Export;экспорт сертфиката в cer файл
  4. Выберите формат экспорта Base-64 encoded X.509 (.cer) и укажите имя файла.

Импортируйте сертификат на сервере RD Web Access:

Import-RDWebClientBrokerCert C:RDBroker.cer

Теперь можно опубликовать клиент RD Web:

Publish-RDWebClientPackage -Type Production -Latest

Publish-RDWebClientPackage

Для тестирования клиента RD Web, можно развернуть клиент с помощью команды:

Publish-RDWebClientPackage -Type Test -Latest

Клиент RD Web позволяет запускать RemoteApps в браузере или через локальный RDP клиент (в этом случае пользователь скачает *.rdp файл). Пользователь может сам выбрать нужные ему режим. Чтобы запуск разрешить RemoteApp только в браузере, выполните команду:
Set-RDWebClientDeploymentSetting -Name "LaunchResourceInBrowser" $true

Доступ к RDWeb серверу через браузер с HTML5

После того, как вы развернули пакет Web Client на RDS сервере, вы можете запустить браузер на клиентском компьютере. Поддерживаются все последние версии браузеров Microsoft Edge, Google Chrome, Safari, Mozilla Firefox. Для доступа к RDS серверам из браузера вам достаточно передать пользователям ссылку на сервер RDWeb.

Обязательно используйте FQDN имя сервера RD для подключения. Обратите внимание, что данное FQDN имя должно содержаться в вашем сертификате RDS развёртывания (проверьте поля Common Name/CN и Subject Alternative Names /SAN).

Откройте URL адрес:

_https://FQDN.server.name/RDWeb/webclient/index.html

Для доступа к тестовой среде используйте адрес:

_https://FQDN.server.name /RDWeb/WebClient-Test/index.html

Имя сервера должно соответствовать имени сервера RD Web Access в сертификате.

Авторизуйтесь на RDWeb сервере под своей учетной записью.

веб клиент rdp

При входе у вас будет запрошено какие локальные ресурсы должны быть доступны в RD сессии. Пока доступно только перенаправление буфера обмена и принтеров (локальные диск и USB устройства через веб-клиент RDP не пробрасываются, нужно использовать полноценный клиент mstsc.exe, RDCMan или аналоги).

rdp веб клиент - проброс локальных ресурсов в удаленную сессию

После успешного входа вы увидите все RemoteApp опубликованные в коллекциях. Вы можете переключаться между ними с помощью иконок в верхней части окна.

список RemoteApps в браузере html5

При запуске RemoteApp оно будет отображаться в браузере с возможностью развернуть окно на весь экран.

Печать из RD Web клиента осуществляется через виртуальный PDF принтер (Microsoft Print to PDF). Когда вы отправляете документ на печать в окне веб клиента, браузер предлагает скачать сформированный pdf файл. Вы можете открыть PDF файл а (PDF просмотрщик встроен в браузер Microsoft Edge) и распечатать на локальном принтере.

RD Web клиент печать через виртуальный PDF принтер

В HTML5 клиенте доступно динамическое изменение окна удаленного рабочего стола и возможность запуска в полноэкранном режиме. Через буфер обмена можно копировать только текст (файлы, графика через буфер веб клиента не копируются).

При входе на RD Web Access вы видите список опубликованных приложений Remote App, но при попытке запуска любого из них появляется ошибка:

Oops, we could not connect to Calculator.
The connection to the remote PC was lost. This might be because of a network connection problem. If this keeps happening, ask your administrator or tech support for help.
Не удалось подключиться к Calculator
Потеряно подключение к удаленному компьютеру. Возможно, есть проблема с сетевым подключением. Если это будет повторяться, обратитесь за помощью к своему администратору или специалисту службы технической поддержки.

rd-web Потеряно подключение к удаленному компьютеру

Также может быть ошибка:

The web client needs a Remote Desktop Gateway to connect to desktops and apps.

web клиенту нужен rds gateway

Эти ошибки возникают, если вы развернули ферму RDS без шлюза RD Web Gateway. Если у вас развернут только RD Connection Broker, нужно привязать ваш сертификат RDS на порт 3392. (см описание в разделе Connecting to RD Broker without RD Gateway in Windows Server 2019 — https://learn.microsoft.com/en-us/windows-server/remote/remote-desktop-services/clients/remote-desktop-web-client-admin).

Ошибка:

Your session ended because an unexpected server authentication certificate was received from the remote PC. Ask your admin or tech support for help.
Ваш сеанс завершен, так как от удаленного компьютера получен непредвиденный сертификат проверки подлинности сервера. Обратитесь за помощью к своему администратору или специалисту службы технической поддержки.

rdwebaccess Ваш сеанс завершен, так как от удаленного компьютера получен непредвиденный сертификат проверки подлинности сервер

Проверьте корректность вашего RD сертификата (FQDN сервера, которые используется для запуска RD веб клиента должен содержаться в сертификате). Проверьте, что этот сертификат назначен на все роли в вашем развертывании RDS. Отдельно проверьте что этот сертификат задан в настройка сервера RDGW (вкладка SSL Certificates). Если возможно, используйте wildcard сертификат.

Когда-то давно, когда деревья были высокими, а я был молодым и зеленым системным администратором, довелось мне внедрять терминальный сервер на Windows 2000. Я тогда думал, что хорошо бы, если бы для подключения к серверу не нужен был никакой отдельный клиент. Шло время, деревья выросли, олени на свитере отпустили рога, а я — бороду, на рынке начали появляться решения для работы в терминале через браузер. Но они были или нестабильные, или дорогие, и пробные внедрения ушли в долгий ящик.

Прошло еще немного времени, в бороде появилась седина, а решений на базе HTML5 стало куда больше. И мне захотелось сделать краткий обзор бесплатных вариантов — как для начинающих системных администраторов, так и для тех, кто пропустил этот момент, как я.

Итак, хотите пускать сотрудников на терминалки через браузер или админить серваки через него же? Добро пожаловать под кат.

Удобство подключения без отдельного клиента сложно переоценить — браузер есть практически на любом пользовательском устройстве. Помимо удобства пользователей есть и аспект безопасности: поскольку такой клиент является веб-сервисом, защищать его гораздо проще. Действительно, классический RDP с интересными уязвимостями высовывать наружу просто так довольно опасно, работать через VPN не всегда удобно, а сервисы fail2ban и нестандартный порт хоть и помогают, но 100% защиты не дают. В то время как веб-сервис можно защитить авторизацией по сертификату и другими методами двухфакторной аутентификации.

Есть мнение, что использование RDS-Gateway с заворачиванием RDP-трафика через HTTPS и установка сертификатов на клиентах является хорошей защитой. На самом деле это не так — установка сертификатов для RDS-Gateway нужна для проверки подлинности не клиента, а сервера. Убедиться в этом можно, попробовав подключиться сторонними RDP-клиентами. Конечно, часть ботов, ищущих открытый RDP, такой способ отсеет. Но решения fail2ban в таком случае тоже необходимы.

Оставлю настройку безопасности за рамками этой статьи и перейду к конкретным примерам реализации. Тестировать будем на терминальном сервере на базе Windows Server 2019, в качестве приложения для проверки RemoteApp будем использовать 1С 7.7. Потому что можем.

Не так давно Microsoft окончательно выпустил свое решение для подключения к RDP через браузер. Начнем, пожалуй, с него.

Microsoft Remote Desktop Web Client

Установка и настройка клиента подробно описана в документации, приведу основные шаги под спойлером.

Установка клиента от MS.

Подготовка. Ролям шлюза удаленных рабочих столов иили посреднику подключений должен быть назначен такой сертификат, которому бы доверяли клиенты. Да, примерно как при обычной работе RDP-клиента через https. Можно завести публичный доверенный сертификат, можно использовать внутреннюю CA, в целях тестирования можно использовать и самоподписанный.

Сначала может понадобиться обновить модуль PowerShellGet.

Это делается командой:

Install-Module -Name PowerShellGet -Force

После этого нужно перезапустить консоль, и для установки клиента достаточно будет выполнить команды:

Install-Module -Name RDWebClientManagement

Install-RDWebClientPackage

В процессе может быть загружен Nuget для установки модулей из репозитория, сервер должен быть подключен к интернету. Да, Windows уже взрослая и умеет в репозитории.

Теперь нужно настроить сертификат для этого клиента. Делается это командой:

Import-RDWebClientBrokerCert cert.cer

Где cert.cer — путь к сертификату посредника удаленных рабочих столов в формате cer.

Теперь можно опубликовать клиента командой:

Publish-RDWebClientPackage -Type Production -Latest

После установки клиент становится доступен по ссылке вида:

https://trm.contoso.com/RDWeb/webclient/index.html

После успешного логина видны все опубликованные в коллекции приложения RemoteApp.

Опубликованные приложения в браузере.

Попробуем запустить 1С, подключившись Firefox с Kubuntu.

Kubuntu, Firefox, 1C 7.7.

Можно запускать и другие опубликованные приложения. В таком случае они будут работать в одном окне, а верхняя панель будет представлять из себя что-то вроде панели задач.

1С, Paint и WordPad.

В целом все выглядит приятно и удобно, полноценный рабочий стол тоже поддерживается. Печать работает в виде отправки на виртуальный принтер PDF с последующей загрузкой файла браузером. Буфер обмена для текста тоже работает, хотя немного раздражает необходимость подтверждать доступ браузера к буферу обмена.

Подтверждение копирования с удаленного рабочего стола.

А вот чего пока нет, так это трансфера файлов с сервера и на сервер, и это существенная ложка дегтя. Подведем итог.

Плюсы:

  • Относительно простая настройка.
  • Установка на Windows-сервере, можно прямо на шлюзе рабочих столов.
  • Прозрачная и удобная работа RemoteApp.
  • Поддержка печати и буфера обмена для текста.

Минусы:

  • Необходимо разбираться с сертификатами.
  • Отсутствие поддержки файлового обмена.

Что ж, посмотрим, что нам предложит мир opensource.

Apache Guacamole

Пожалуй, одно из самых известных решений. Но версия 1.0 появилась относительно недавно. К ее минусам можно сразу отнести отсутствие официальной поддержки Windows в качестве точки установки — нужна отдельная linux-машина или образ Docker. Документация доступна, как обычно, на официальном сайте. Стоит отметить, что помимо RDP, решение поддерживает доступ через браузер к серверам ssh, telnet и vnc.

Если вам не хочется собирать свежую версию из исходников и разбираться с зависимостями, можно воспользоваться готовыми скриптами установки, вроде скрипта guac-install. Но — как обычно — за сторонние скрипты редакция ответственности не несет.

После установки согласно документации нужно так или иначе создать пользователей и настроить подключения. Я использовал работу с MySQL в качестве хранилища пользователей и их настроек и настраивал все это дело через веб-интерфейс. Через него доступно создание и настройка пользователей, подключений и групп, которые позволяют делать общие подключения для разных пользователей.

Настройка простого RDP-подключения.

Стоит отметить, что если мы хотим прозрачно подключаться, авторизовавшись только через веб-интерфейс, то понадобится или вручную создавать каждому пользователю подключение, вводя его пароль (!), или делать более сложную установку. Например, использовать для хранения настроек и авторизации БД Active Directory, что потребует модификации схемы AD. Или настраивать авторизацию через LDAP, также создавая пользователей и в классической БД вроде MySql.

Без сложных установок придется создавать отдельных пользователей веб-интерфейса или делать одного общего. При этом если не задавать имя пользователя и пароль в настройках подключения, то надо отключить безопасность NLA на сервере. Не очень удобно.

Помимо полноценного рабочего стола есть и поддержка RemoteApp. Важный нюанс — прописывать имя программы в настройках нужно точно так же, как и в файле RDP.

Настройка RemoteApp.

И если все было сделано правильно, наша «семерка» откроется в браузере.

И снова 1С 7.7 в браузере.

Печать работает так же: скачивается PDF, но — в отличие от решения от MS, — есть возможность файлового обмена с сервером.

По сути, Apache Guacamole запускает у себя freerdp и может прокидывать папки со своей линуксовой машины на виндовый сервер.

Перенаправленный диск в 1С.

В свою очередь из браузера можно скачать или загрузить файл через специальное меню. В этом меню можно еще и настроить эмуляцию мыши и экранную клавиатуру. Вызывается оно сочетанием клавиш Ctrl+Alt+Shift.

Работа с файлами.

Текстовый буфер обмена также работает, но немного неудобно (бесит куда больше, чем решение от MS). Современные браузеры в паре с Apache Guacamole позволяют легко копировать текст с удаленного приложения при помощи Ctrl+C, но для вставки текста с локальной машины понадобится использовать меню по Ctrl+Alt+Shift.

Зато практически «из коробки» реализована двухфакторная аутентификация (особенно, если делать установку сторонним скриптом). Например, при помощи алгоритма TOTP.

Вкратце напомню: TOTP (Time-based One-time Password Algorithm) — это алгоритм генерации одноразовых паролей на основе времени. При первом входе пользователю будет предложено считать двухмерный штрих-код или записать набор символов, «скормить» их приложению (например, Google Authenticator). И на основе этого набора символов (security string) приложение каждые 30 секунд будет генерировать новое число-код для входа.

В целом, решение произвело впечатление более продуманного и законченного, если бы не некоторая сложность в настройке для нормальной работы. Подведу итог.

Плюсы:

  • Поддержка текстового буфера обмена и печати.
  • Поддержка файлового обмена.
  • Поддержка тачскринов в виде настраиваемой эмуляции мыши и клавиатуры.
  • Возможность записи сессии в видеофайл.

Минусы:

  • Необходимость отдельной машины или контейнера.
  • Сложность в настройке, особенно для специалиста, непривычного к Linux.
  • Не очень удобная работа текстового буфера обмена.

На просторах сети я нашел еще один малоизвестный проект, запускающий freerdp и отображающий получившееся через браузер. Попробуем и его.

Myrtille

Проект со всей документацией располагается на github автора. В отличие от Guacamole, Myrtille устанавливается на Windows, да ещё и практически в режиме «Далее — Далее — ОК». Устанавливаем, запускаем браузер.

Windows в браузере.

Помимо RDP поддерживается SSH и подключение к виртуальной машине Hyper-V. Меню управления подключением вызывается по кнопке с тремя точками в левом верхнем углу.

Меню управления подключением.

Работа с файлами производится через веб-интерфейс — по кнопке Files открывается доступ к папке «Мои документы» пользователя для загрузки и скачивания файлов. При этом если Myrtille установлен не на терминальном сервере, придется настраивать перенаправление папки. Печать, в отличие от двух других решений, сразу вызывает окно с диалогом печати PDF.

Чуть хуже дела с RemoteApp при работе приложения в обычном режиме. Для запуска несчастной 1С нужно сформировать ссылку вида:

https://myserver/Myrtille/?__EVENTTARGET=&__EVENTARGUMENT=&server=server&domain=domain&user=user&passwordHash=passwordHash&program=program

В которой нужно явно указать пользователя и его пароль (или хэш пароля). Программу необходимо прописать так же, как и в файле RDP — в случае нашей 1С это будет ||1cv7l. Все параметры должны быть URL-encoded.

И в третий раз 1С в браузере.

Для получения хэша пароля можно также воспользоваться myrtille, просто перейдя по ссылке (выполнив GET-запрос):

https://server/myrtille/GetHash.aspx?password=password

Двухфакторная аутентификация также доступна «из коробки» и основана на сервисе oliveinnovations.com.

Для работы в доменной среде у приложения есть отдельный режим работы — Enterprise mode. Для его включения нужно при установке (или потом, в файлах конфигурации) указать имя домена и группу администраторов (пользователей, которые могут настраивать подключения). Тогда при входе будет запрашиваться только имя пользователя и пароль, и администратор может создавать предопределенные конфигурации подключения для групп пользователей. Это и позволит нам сделать удобный ярлык для запуска 1С.

Создание подключения в панели управления Enterprise-режима.

Теперь пользователь при входе будет видеть доступные ему подключения и запускать 1С по кнопке, а не по странной ссылке с паролем.

Интерфейс при входе обычного пользователя.

К сожалению, на данный момент у меня не получилось заставить работать текстовый буфер обмена в современных браузерах — работа идет только по кнопке clipboard и только в сторону с сервера на локальный ПК.

Итого.

Плюсы:

  • Простая установка на Windows.
  • Поддержка почти всего, что нужно, вроде печати и передачи файлов.
  • Возможность подключения к приложению или рабочему столу сразу по ссылке.
  • Есть возможность работы в режиме совместимости (HTML4).

Минусы:

  • Пока нормально не работает текстовый буфер обмена.
  • Работа с файлами удобна, только если сервис установлен непосредственно на терминальном сервере.

Вместо послесловия

Конечно, существуют и другие решения, в том числе и платные. Приведу несколько самых популярных, не трогая монстров вроде Xen Desktop:

  • Ericom AccessNow.
  • TSplus (в редакции Mobile Web и Enterprise).
  • Remote Spark.

В них уже есть поддержка принтеров и работы с файлами, но в принципе и бесплатные решения более-менее дошли до аналогичного уровня.

По результатам исследования я решил остановиться на решении от MS, благо перенос файлов в моем случае не был нужен (точнее, был категорически не нужен).

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Расскажите, а используете ли вы в работе HTML5-клиенты?


17.79%
Нет, и не собираюсь.
29


7.36%
Да, использую, напишу в комментах какой.
12


50.31%
Пока не использую, но теперь задумался.
82

Проголосовали 163 пользователя.

Воздержались 37 пользователей.

The RD Web Client complements Microsoft’s native Remote Desktop Protocol (RDP) clients, but it cannot replace them. You can install it on Windows Server 2016 and 2019, and it requires only a modern browser on the user’s device.

Contents

  1. Not compatible with per-device CALs
  2. Installation via PowerShell
  3. Desktops and RemoteApp
  4. Printing, dynamic window size, and clipboard
  5. Conclusion
  • Author
  • Recent Posts

Wolfgang Sommergut has over 20 years of experience in IT journalism. He has also worked as a system administrator and as a tech consultant. Today he runs the German publication WindowsPro.de.

Over the past few years, Microsoft has extended RDP support to several platforms. Native clients for macOS, iOS, and Android are now available, along with a Universal Windows Platform (UWP) app for Windows 10. In the past whoever wanted to run remote desktop applications in a web browser had to rely on third-party products. This has changed with the availability of the Remote Desktop Web Client.

Not compatible with per-device CALs

Before you install the Web Client, you should make sure you use per-user client access licenses (CALs) and not per-device CALs. Otherwise the HTML client would seize all per-device CALs, since it is not compatible with this type of license. It will display a corresponding warning again during installation.

If an RD gateway is missing, the Web Client will refuse to establish a connection

If an RD gateway is missing, the Web Client will refuse to establish a connection

As an additional requirement, the Remote Desktop Services (RDS) deployment must include an RD Gateway even for internal usage on Windows Server 2019, despite the fact Microsoft announced otherwise during the Windows Server Summit.

RD Web Client features and requirements

RD Web Client features and requirements

Installation via PowerShell

The RD Web Client is suitable for Windows Server 2016 and 2019, but Microsoft has yet to include it in the installation media of the operating systems. Currently it is not part of Server 2019 either.

The installation occurs via PowerShell’s package management, which downloads the required packages from PowerShell Gallery. As a first step, you must update the PowerShellGet module not only on Server 2016 but also on Server 2019. The following command achieves this:

Install-Module -Name PowerShellGet -Force

Update the NuGet provider before installing the Web Client

Update the NuGet provider before installing the Web Client

At this point, it might be necessary to close the PowerShell window and start a new session.

The actual installation requires four commands as this tutorial on Microsoft Docs describes:

Install-Module -Name RDWebClientManagement
Install-RDWebClientPackage
Import-RDWebClientBrokerCert <.cer file exported from the RD Broker>
Publish-RDWebClientPackage -Type Production -Latest

Install the Web Client using PowerShellGet

Install the Web Client using PowerShellGet

Please verify the certificate for RD Connection Broker — Enable Single Sign On (SSO). In the RDS deployment configuration, this must always match the certificate previously imported from RD Broker to the Web Client. So if you renew the certificate for RD Broker, you must reimport it to the Web Client.

The certificate for the Web Client must be the same as the certificate assigned for SSO in RD Broker

The certificate for the Web Client must be the same as the certificate assigned for SSO in RD Broker

After successfully adding the package for the Web Client, you can access it via the URL https://<fully qualified domain name of the server>/RDWeb/webclient. This currently supports newer versions of browsers such as Edge, IE 11, Google Chrome, Safari, or Firefox, but not on mobile devices.

Log in to the RD Web Client

Log in to the RD Web Client

Desktops and RemoteApp

Once you have logged in, you will see collections for both RemoteApp and Remote Desktops. If the administrator has published several RemoteApps, they will all launch within the same frame. You can switch between them using the bar showing the active programs at the top of the screen.

All RemoteApps open in the same browser window; you can switch between them via the icons in the taskbar above

All RemoteApps open in the same browser window; you can switch between them via the icons in the taskbar above

During logon, the client will ask you which local resources should be accessible in the remote session. You can only select the clipboard and printers, but no drives or USB devices are available as with the native RDP client.

Only the clipboard and printers are available as local resources in the remote session

Only the clipboard and printers are available as local resources in the remote session

Printing, dynamic window size, and clipboard

The screen response is relatively fluid, and the browser client can also play videos in acceptable quality, including sound. The redirected virtual remote desktop printer turns out to be a print-to-PDF function that automatically downloads the PDF to the local computer after its creation.

The virtual printer in the Web Client creates PDFs and downloads them to the mobile device

The virtual printer in the Web Client creates PDFs and downloads them to the mobile device

While users of the conventional RDP client had to wait many years before it eventually supported resizing the window, the HTML5 client offers this feature right from the start. A full-screen mode is also available.

Copy and paste is limited to plain text for now

Copy and paste is limited to plain text for now

Currently, there is still a major limitation when exchanging data between the remote session and the local device. Copy and paste only works for text; you cannot transfer other content types such as graphics via the clipboard. As expected, copying files via HTTP is not possible, in contrast to RDP.

Conclusion

The web front end complements Microsoft’s client portfolio for RDS with an option that does not require any local installation of software. However, since it doesn’t support any mobile devices, and most desktop PCs are running Windows, the native RDP client is preinstalled on most devices anyway. It also offers a much better user experience than the Web Client.

Subscribe to 4sysops newsletter!

Due to the current existing limitations, the Web Client is a niche application that can be interesting for ad hoc connections from outside the company network. For administrative access to Windows Server via RD, you don’t need to set up the Web Client, because it’s also part of the Admin Center.

Коллеги, добрый день. Сегодня мы поговорим о том, как можно предоставить удаленный доступ нашим дорогим пользователям к внутренним ресурсам организации из сети интернет. Обсудим плюсы и минусы подходов, узнаем нюансы конфигурации и эксплуатации сервисов.

Сначала познакомимся с ролью Remore Gateway, затем перейдем к Web Client. Увидим как будет выглядеть подключение со стороны клиента с разных ОС. Также подведем некоторые итоги по проведенной работе.

Remote Desktop Gateway

Описание функционала

Компонент RD Gateway представляет из себя стандартную (доступную из коробки) роль Windows Server. Суть заключается в том, что на периметре локальной сети разворачивается хост на котором инсталлируется компонент RD Gateway. Как нам подсказывает название, он является шлюзом для удаленных подключений. Само подключение производится через RDP клиент (в ОС отличных от Windows может потребоваться поддержка функционала шлюза подключений).

Принципиальным отличием работы компонента от обычного подключения RDP является тот факт, что соединение RDP устанавливается поверх HTTPS (веб-сервер IIS будет инсталлирован автоматически при установке).

Применение этой технологии позволяет более гибко подойти к вопросам публикации, управления и мониторинга удаленных подключений наших коллег:

  • По части публикации — нам достаточно опубликовать один порт в сеть интернет, нет необходимости плодить большое количество портов при публикации дополнительных узлов подключения.
  • По части управления — мы получаем инструменты политик авторизаций, где мы можем явно указывать: кто, куда и как может подключаться.
  • По части мониторинга — мы получаем возможность ведения лога подключений, удачных и неудачных попыток при помощи журналов Windows.

Предварительные требования

  • Windows Server 2008+ в качестве ОС узла установки роли.
  • Наличие развернутого домена Active Directory.

Наш тестовый стенд

Чтобы легче было понимать материал, опишу нашу тестовую лабораторию на которой мы будем проводить тесты.

Стенд состоит из 4х узлов:

  • lab-dc1.party.hard — контроллер домена.
  • lab-rds1.party.hard — сервер, на котором уже создано тестовое развертывание служб удаленных рабочих столов.
  • lab-rdgw1.party.hard — сервер шлюза удаленных рабочих столов и компонента web client.
  • lab-client1 — узел вне домена, моделирует клиентское подключение.

Установка, конфигурация и проверка роли Remote Desktop Gateway

Установить роль возможно произвести разными способами. Мы рассмотрим способ через развертывание служб удаленных рабочих столов.

Установка через развертывание служб удаленных рабочих столов

Начнем с сервера lab-rds1.party.hard. Для инсталляции роли нам необходимо в Диспетчере серверов, где уже существует развертывание инфраструктуры RDS, добавить сервер lab-rdgw1.party.hard для управления.

Производим поиск и добавление сервера для управления.

Затем, через иконку RD Gateway, добавить роль узлу lab-rdgw1.party.hard.

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

Указываем наш недавно добавленный для управления сервер.

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

Проверяем указанные настройки и подтверждаем.

В результате мы увидим подобное окно, сообщающее о завершении установки роли.

Следующим этапом мы займемся конфигурацией сертификатов.

Выберем пункт Создать новый сертификат.

Заполним необходимые поля и чекбоксы.

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

Воспользуемся статусом готовности и нажмем кнопку Применить.

Теперь статус изменился на Успех.
Проверяем подключение со стороны клиента

Поздравляю, мы произвели необходимый минимум для работы Remote Desktop Gateway. Теперь можно проверять как технология выглядит со стороны внешнего пользователя, которому очень хочется получить удаленный доступ.

Для этого пользователю понадобиться выполнить подключение через RDP клиент. Введем внешнее имя нашего шлюза, которое мы указывали при конфигурации. Также включим настройку Использовать мои учетные данные шлюза удаленных рабочих столов для удаленного компьютера для того, чтобы не вводить одни и те же учетные данные несколько раз.

Также необходимо определить внутренний хост к которому необходимо подключиться с указанием учетных данных.

Так выглядит подключение к шлюзу через стандартный RDP клиент Windows.

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

В конечном итоге клиент выполняет RDP соединение с интересующим его хостом, который находится позади шлюза.

Мониторинг удаленных подключений

Для того, чтобы узнать информацию об успешных или неудачных попытках подключения к шлюзу мы можем воспользоваться инструментом Просмотр событий. Нужную нам информацию мы найдем журналах Безопасность и Microsoft-Windows-TerminalServices-Gateway.

Для примера я произведу 2 попытки входа.

Первая — учетные данные некорректны.

В журнале Безопасность, в поле Account Name и Account Domain мы можем увидеть введенные пользователем данные. Также мы видим причину неудачи авторизации.

В журнале Microsoft-Windows-TerminalServices-Gateway мы можем увидеть запрос на удаленное подключение.

Вторая — учетные данные корректны.

Процедура авторизации завершилась успехом.

Журнал Microsoft-Windows-TerminalServices-Gateway также зафиксировал успешное соединение пользователя.

Нюансы эксплуатации

В ходе изучения технологии я столкнулся с несколькими нюансами которые желательно знать перед вводом в эксплуатацию.

Необходимость решения вопроса с SSL сертификатом для подключения к шлюзу

Этот пункт подразумевает обязательное доверие со стороны клиентов к внешнему сертификату безопасности. Проще говоря, если у клиента нет доверия к сертификату, то подключиться к шлюзу не получится.
Вариантов решения не так уж и много:

  • Использование самоподписанного сертификата и ручной импорт клиентам в случае если ПК не в домене и автоматизация этого процесса через GPO если ПК в домене.
  • Использование бесплатного сертификата Let’s Encrypt (90 дней). О выпуске и установке сертификата вы можете почитать — здесь.
  • Покупка сертификата безопасности на год.
Невозможность указать нестандартный порт подключения на старых RDP клиентах Microsoft

Что касается этого пункта, мы можем столкнуться с ситуацией, когда внешний порт уже занят и нам необходимо выбрать другой.

Такой сценарий, безусловно, поддерживается, однако проблемы могут возникнуть на клиентских машинах со старой версией RDP клиента. При попытке указать внешний адрес и порт подключения будет выдаваться ошибка о невозможности выполнения этого действия.

Решение только одно — установка обновления RDP клиента. Начиная с Windows 8 клиент уже обновлен и такой проблемы замечено небыло.

Возможные проблемы при подключении с ОС отличных от Windows

Функционал, необходимый для подключения через шлюз удаленных рабочих столов, интегрирован в стандартный RDP клиент Microsoft. Однако, если необходимо подключаться с других ОС, необходимо предварительно проверить возможность подключения через шлюз.

HTML5 Web client

Описание функционала

Компания Microsoft пошла дальше в вопросах предоставления удаленного доступа пользователям и выпустила специальный Web client компонент, позволяющий подключаться к рабочему столу или RemoteApp приложению через обычный веб-браузер.

Подобный подход имеет большое преимущество перед классическим подключением через шлюз. Теперь мы не зависим от ОС или конфигурации RDP клиента. Нам достаточно иметь на устройстве любой современный браузер для удаленного подключения.

Схема работы примерно та же. Мы организуем хост с установленным компонентом Web Client на периметре сети и публикуем один порт в сеть интернет.

Также у нас появляется возможность игнорировать вопросы связанные с клиентским доверием к SSL сертификатам. Т.к подключение происходит через веб-браузер, мы можем просто закрыть глаза и использовать самоподписанный сертификат для целей удаленного подключения без необходимости получения или приобретения сторонних.

Также прошу обратить внимание, что компонент Web client и роль Remote Desktop Web Access не одно и тоже. RD Web Access позволяет нам публиковать сеансы и RemoteApp приложения, которые, по факту, будут подключаться через RDP. Web client позволяет нам устанавливать сессию непосредственно в веб-браузере.

Предварительные требования

  • В сети должно быть сконфигурировано развертывание удаленных рабочих столов.
  • Версия ОС на узлах с ролями Connection Broker, Web Access, Session Host, Gateway должна быть Windows Server 2016+.
  • Лицензии CAL должны выдаваться на пользователя, не на устройство.
  • На узле Web client должно быть установлено обновление KB4025334.
  • Наличие развернутого домена Active Directory.

Установка, конфигурация и проверка Web client

В этой статье мы развернем компонент Web client, как и Remote Desktop Gateway, на отдельном узле — lab-rdgw1.party.hard. Воспользуемся уже сконфигурированной инфраструктурой, описанной выше.

Т.к мы планируем развернуть компонент на узле lab-rdgw1.party.hard, нам необходимо установить на него роль Web Access, иначе, мы столкнемся с невозможностью установки Web client.

Подобная ошибка возникнет при отсутствии роли RD Web Access на узле, в момент публикации Web client.

Для этого воспользуемся способом установки через развертывание служб удаленных рабочих столов и добавим управляемый хост в Диспетчере серверов.

Теперь перейдем к установке роли Web Access. Для этого выберем пункт Добавить сервера Web Access в Обзоре развертывания.

Укажем узел для развертывания роли.

Подтверждаем установку и ждем ее завершения.

Теперь переходим непосредственно к установке Web client. На текущий момент установка компонента возможна только через PowerShell. Может быть, со временем, разработчики добавят возможность установки через GUI.

Сперва нам необходимо обновить модуль PowershellGet. Открываем Powershell от имени администратора и вводим:

Install-Module -Name PowerShellGet -Force

Для корректной работы нам нужно закрыть и еще раз открыть Powershell от имени администратора, иначе установленный модуль не будет работать.

После установки PowershellGet устанавливаем модуль RDWebClientManagement. Для этого вводим в Powershell:

Install-Module -Name RDWebClientManagement

Также подтверждаем установку и соглашаемся с условиями в процессе выполнения командлета.

Теперь установим модуль Web client выполнив в Powershell командлет:

Install-RDWebClientPackage

Теперь ненадолго переместимся на узел с ролью RD Connection Broker. Отсюда нам нужен сертификат который уже или будет назначен для роли RD Connection Broker. Так как мы разворачиваем тестовый стенд, нам проще создать новый самоподписанный.

В разделе коллекций, меню задачи, выбираем редактирование свойств развертывания.

В появившемся окне переходим в раздел сертификаты. Выбираем Создать новый сертификат для роли RD Connection Broker — Enable Single Sign On.

Указываем имя сертификата, пароль. Также определяем место сохранения.

Теперь мы готовы к назначению нового сертификата. Для этого нажмем Применить.

Если мы видим подобную картину, значит сертификат был назначен успешно.

После этого нам необходимо найти его в оснастке Сертификаты учетной записи компьютера в виде ключевой пары .pfx и экспортировать публичную часть.

Сформированные нами сертификаты можно найти в папке Личное.

Нам необходимо экспортировать только публичную часть, указываем это при экспорте.

Только что полученный сертификат переносим на сервер lab-rdgw1.party.hard любым доступным способом и сами возвращаемся на него же. 🙂

Импортируем открытую часть сертификата для развертывания Web client.

Import-RDWebClientBrokerCert "C:usersAdministratorDesktoplab-rds1.party.hard.cer"

И наконец публикуем компонент.

Publish-RDWebClientPackage -Type Production -Latest
Дополнительная литература

Для более подробных инструкций предлагаю посмотреть документацию Microsoft.

https://docs.microsoft.com/en-us/windows-server/remote/remote-desktop-services/clients/remote-desktop-web-client-admin

Проверяем подключение со стороны клиента

Итак, проверим как наши пользователи будут удаленно подключаться. Для этого запускаем веб-браузер и вводим внешний fqdn-адрес:
https://ext-lab-rdgw1.party.hard/RDWeb/webclient/

Перед нами появляется приглашение авторизации. Воспользуемся случаем и укажем учетные данные.

После успешного входа перед нами появляются опубликованные в коллекциях ресурсы.

Запустим, единственный в нашем случае, опубликованный ресурс.

Браузер вежливо предлагает нам пробросить в удаленный сеанс буфер обмена и принтеры.

Производим подключение.

Мы попадаем в удаленную сессию на узле lab-rds1.party.hard.

Также, для полноты картины, я решил добавить в статью подключение с устройства под управлением Linux.

Для этого точно также запускаем веб-браузер и вводим внешний fqdn-адрес:
https://ext-lab-rdgw1.party.hard/RDWeb/webclient/

Нас встречает уже знакомая процедура авторизации.

Подключение установлено с устройства под управлением Linux и книжной ориентацией экрана.

Подключение к хостам вне коллекции RDS

У некоторых может возникнуть вопрос:

Возможно ли подключение через веб-браузер к серверам, которые не находятся в коллекции RDS? А к клиентским компьютерам?

Да, такое возможно с небольшой хитростью. Для этого нам необходимо опубликовать RemoteApp приложение удаленного рабочего стола (mstsc) с необходимыми параметрами подключения.

Ниже я покажу пример публикации удаленного подключения к серверу lab-dc1.party.hard.

Подход имеет свои недостатки. Таким образом мы, фактически, устанавливаем 2 RDP соединения. Сначала с узлом RDSH и отсюда устанавливаем новое соединение с нужным нам хостом.

При использовании хитрости описанной выше, наш пользователь увидит в веб-панели только опубликованное приложение, без значка подключения к RDSH узлу коллекции. Это связано с тем, что коллекции могут быть двух типов:

  • Сессии
  • Приложения RemoteApp

Поэтому, если необходимо сохранить у пользователя как подключение к RDSH узлу, так и к другому серверу или клиентскому компьютеру, необходимо изменить один параметр в реестре.

HKLMSOFTWAREMicrosoftWindows NTCurrentVersionTerminal ServerCentralPublishedResourcesPublishedFarms<collection>RemoteDesktops<collection>ShowInPortal

Значение этого ключа должно быть равно 1.

После изменения значения пользователь увидит оба варианта подключения.

Мониторинг удаленных подключений

Для того, чтобы узнать информацию об успешных или неудачных попытках подключения к Web client мы можем воспользоваться инструментом Просмотр событий. Нужную нам информацию мы найдем журнале Безопасность.

Для примера я произведу 2 попытки входа.

Первая — учетные данные некорректны.

В поле Account Name и Account Domain мы можем увидеть введенные пользователем данные. Также мы видим причину неудачи авторизации.

Вторая — учетные данные корректны.

При использовании инструментов для автоматизации процесса можно получить более удобный мониторинг и интегрировать его в другие сервисы (напр. Zabbix).

Нюансы эксплуатации

Отсутствие возможности копирования файлов

К сожалению, на момент публикации статьи в компоненте отсутствует возможность копировать файлы между системами. Возможно, в вашей рабочей деятельности это будет являться важным фактором, поэтому это стоит учитывать.

Двойное RDP подключение к хостам вне коллекции RDS

На текущий момент мне не удалось напрямую подключиться к узлам, которые не находятся в RDS коллекции. Пока что мне известен только способ через двойное подключение, где в качестве прокси будет использован RDSH узел. Для пользователя использование этого метода может стать причиной низкого быстродействия удаленного подключения.

Некорректная работа с NAT

При эксплуатации была выявлена проблема, при которой не удавалось установить соединение с RDSH узлами. В ходе диагностики выяснилось, что если доступ к узлу с компонентом Web Client осуществляется с помощью трансляции портов отличных от 443, то подключение не может быть установлено. Если транслировать внешний порт 443 в такой же внутренний, то подобной проблемы не возникает.

Итоги

Мнение

В ходе знакомства с технологиями у меня сложилось впечатление того, что они неплохо друг друга дополняют и могут практически полностью закрыть потребности как пользователей, так и администраторов.

Большой удачей является тот факт, что обе технологии могут работать вместе в гибридном варианте. Более того, они работают через один порт и через один и тот же сервис IIS, который устанавливается при развертывании, что также упрощает жизнь специалистам по эксплуатации.

Как уже упоминалось выше, при использовании некоторых хитростей можно расширить зону применения (публикация rdp клиента для дальнейшего подключения на компьютеры не входящие в коллекции) и предоставить нашим коллегам удаленный доступ вне зависимости от типа и конфигурации их ОС.

Также администраторы получают возможность централизовано (через свойства коллекций или Active Directory) управлять доступом и заниматься мониторингом подключений. Это очень удобно с точки зрения интеграции с уже существующей инфраструктурой. У специалистов по эксплуатации отпадает необходимость дружить другое ПО с учетными данными пользователей в Active Directory.

Коллеги! Если у вас есть замечания или дополнения по предмету этой статьи, прошу оставить комментарий. Возможно, они кому-то пригодятся в будущем.

title description ms.author ms.date ms.topic author

Set up the Remote Desktop web client for your users

Describes how an admin can set up the Remote Desktop web client.

helohr

09/19/2019

article

Heidilohr

Set up the Remote Desktop web client for your users

The Remote Desktop web client lets users access your organization’s Remote Desktop infrastructure through a compatible web browser. They’ll be able to interact with remote apps or desktops like they would with a local PC no matter where they are. Once you set up your Remote Desktop web client, all your users need to get started is the URL where they can access the client, their credentials, and a supported web browser.

[!IMPORTANT]
The web client does support using Azure AD Application Proxy but does not support Web Application Proxy at all. See Using RDS with application proxy services for details.

What you’ll need to set up the web client

Before getting started, keep the following things in mind:

  • Make sure your Remote Desktop deployment has an RD Gateway, an RD Connection Broker, and RD Web Access running on Windows Server 2016 or 2019.
  • Make sure your deployment is configured for per-user client access licenses (CALs) instead of per-device, otherwise all licenses will be consumed.
  • Install the Windows 10 KB4025334 update on the RD Gateway. Later cumulative updates may already contains this KB.
  • Make sure public trusted certificates are configured for the RD Gateway and RD Web Access roles.
  • Make sure that any computers your users will connect to are running one of the following OS versions:
    • Windows 10
    • Windows Server 2008R2 or later

Your users will see better performance connecting to Windows Server 2016 (or later) and Windows 10 (version 1611 or later).

[!IMPORTANT]
If you used the web client during the preview period and installed a version prior to 1.0.0, you must first uninstall the old client before moving to the new version. If you receive an error that says «The web client was installed using an older version of RDWebClientManagement and must first be removed before deploying the new version,» follow these steps:

  1. Open an elevated PowerShell prompt.
  2. Run Uninstall-Module RDWebClientManagement to uninstall the new module.
  3. Close and reopen the elevated PowerShell prompt.
  4. Run Install-Module RDWebClientManagement -RequiredVersion <old version> to install the old module.
  5. Run Uninstall-RDWebClient to uninstall the old web client.
  6. Run Uninstall-Module RDWebClientManagement to uninstall the old module.
  7. Close and reopen the elevated PowerShell prompt.
  8. Proceed with the normal installation steps as follows.

How to publish the Remote Desktop web client

To install the web client for the first time, follow these steps:

  1. On the RD Connection Broker server, obtain the certificate used for Remote Desktop connections and export it as a .cer file. Copy the .cer file from the RD Connection Broker to the server running the RD Web role.

  2. On the RD Web Access server, open an elevated PowerShell prompt.

  3. On Windows Server 2016, update the PowerShellGet module since the inbox version doesn’t support installing the web client management module. To update PowerShellGet, run the following cmdlet:

    Install-Module -Name PowerShellGet -Force

    [!IMPORTANT]
    You’ll need to restart PowerShell before the update can take effect, otherwise the module may not work.

  4. Install the Remote Desktop web client management PowerShell module from the PowerShell gallery with this cmdlet:

    Install-Module -Name RDWebClientManagement
  5. After that, run the following cmdlet to download the latest version of the Remote Desktop web client:

    Install-RDWebClientPackage
  6. Next, run this cmdlet with the bracketed value replaced with the path of the .cer file that you copied from the RD Broker:

    Import-RDWebClientBrokerCert <.cer file path>
  7. Finally, run this cmdlet to publish the Remote Desktop web client:

    Publish-RDWebClientPackage -Type Production -Latest

    Make sure you can access the web client at the web client URL with your server name, formatted as https://server_FQDN/RDWeb/webclient/index.html. It’s important to use the server name that matches the RD Web Access public certificate in the URL (typically the server FQDN).

    [!NOTE]
    When running the Publish-RDWebClientPackage cmdlet, you may see a warning that says per-device CALs are not supported, even if your deployment is configured for per-user CALs. If your deployment uses per-user CALs, you can ignore this warning. We display it to make sure you’re aware of the configuration limitation.

  8. When you’re ready for users to access the web client, just send them the web client URL you created.

[!NOTE]
To see a list of all supported cmdlets for the RDWebClientManagement module, run the following cmdlet in PowerShell:

Get-Command -Module RDWebClientManagement

How to update the Remote Desktop web client

When a new version of the Remote Desktop web client is available, follow these steps to update the deployment with the new client:

  1. Open an elevated PowerShell prompt on the RD Web Access server and run the following cmdlet to download the latest available version of the web client:

    Install-RDWebClientPackage
  2. Optionally, you can publish the client for testing before official release by running this cmdlet:

    Publish-RDWebClientPackage -Type Test -Latest

    The client should appear on the test URL that corresponds to your web client URL (for example, https://server_FQDN/RDWeb/webclient-test/index.html).

  3. Publish the client for users by running the following cmdlet:

    Publish-RDWebClientPackage -Type Production -Latest

    This will replace the client for all users when they relaunch the web page.

How to uninstall the Remote Desktop web client

To remove all traces of the web client, follow these steps:

  1. On the RD Web Access server, open an elevated PowerShell prompt.

  2. Unpublish the Test and Production clients, uninstall all local packages and remove the web client settings:

  3. Uninstall the Remote Desktop web client management PowerShell module:

    Uninstall-Module -Name RDWebClientManagement

How to install the Remote Desktop web client without an internet connection

Follow these steps to deploy the web client to an RD Web Access server that doesn’t have an internet connection.

[!NOTE]
Installing without an internet connection is available in version 1.0.1 and above of the RDWebClientManagement PowerShell module.

[!NOTE]
You still need an admin PC with internet access to download the necessary files before transferring them to the offline server.

[!NOTE]
The end-user PC needs an internet connection for now. This will be addressed in a future release of the client to provide a complete offline scenario.

From a device with internet access

  1. Open a PowerShell prompt.

  2. Import the Remote Desktop web client management PowerShell module from the PowerShell gallery:

    Import-Module -Name RDWebClientManagement
  3. Download the latest version of the Remote Desktop web client for installation on a different device:

    Save-RDWebClientPackage "C:WebClient"
  4. Download the latest version of the RDWebClientManagement PowerShell module:

    Find-Module -Name "RDWebClientManagement" -Repository "PSGallery" | Save-Module -Path "C:WebClient"
  5. Copy the content of «C:WebClient» to the RD Web Access server.

From the RD Web Access server

Follow the instructions under How to publish the Remote Desktop web client, replacing steps 4 and 5 with the following.

  1. You have two options to retrieve the latest web client management PowerShell module:

    • Import the Remote Desktop web client management PowerShell module:
      Import-Module -Name RDWebClientManagement
    • Copy the downloaded RDWebClientManagement folder to one of the local PowerShell module folders listed under $env:psmodulePath, or add the path to the folder with the downloaded files to the $env:psmodulePath.
  2. Deploy the latest version of the Remote Desktop web client from the local folder (replace with the appropriate zip file):

    Install-RDWebClientPackage -Source "C:WebClientrdwebclient-1.0.1.zip"

Connecting to RD Broker without RD Gateway in Windows Server 2019

This section describes how to enable a web client connection to an RD Broker without an RD Gateway in Windows Server 2019.

Setting up the RD Broker server

Follow these steps if there is no certificate bound to the RD Broker server

  1. Open Server Manager > Remote Desktop Services.

  2. In Deployment Overview section, select the Tasks dropdown menu.

  3. Select Edit Deployment Properties, a new window titled Deployment Properties will open.

  4. In the Deployment Properties window, select Certificates in the left menu.

  5. In the list of Certificate Levels, select RD Connection Broker — Enable Single Sign On. You have two options: (1) create a new certificate or (2) an existing certificate.

Follow these steps if there is a certificate previously bound to the RD Broker server

  1. Open the certificate bound to the Broker and copy the Thumbprint value.

  2. To bind this certificate to the secure port 3392, open an elevated PowerShell window and run the following command, replacing «< thumbprint >» with the value copied from the previous step:

    netsh http add sslcert ipport=0.0.0.0:3392 certhash="<thumbprint>" certstorename="Remote Desktop" appid="{00000000-0000-0000-0000-000000000000}"

    [!NOTE]
    To check if the certificate has been bound correctly, run the following command:

    In the list of SSL Certificate bindings, ensure that the correct certificate is bound to port 3392.

  3. Open the Windows Registry (regedit), go to HKLMSYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp and locate the key WebSocketURI. Next, set the value to https://+:3392/rdp/.

Setting up the RD Session Host

Follow these steps if the RD Session Host server is different from the RD Broker server:

  1. Create a certificate for the RD Session Host machine, open it and copy the Thumbprint value.

  2. To bind this certificate to the secure port 3392, open an elevated PowerShell window and run the following command, replacing «< thumbprint >» with the value copied from the previous step:

    netsh http add sslcert ipport=0.0.0.0:3392 certhash="<thumbprint>" appid="{00000000-0000-0000-0000-000000000000}"

    [!NOTE]
    To check if the certificate has been bound correctly, run the following command:

    In the list of SSL Certificate bindings, ensure that the correct certificate is bound to port 3392.

  3. Open the Windows Registry (regedit) and navigate to HKLMSYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp and locate the key WebSocketURI. The value must be set to https://+:3392/rdp/.

General Observations

  • Ensure that both the RD Session Host and RD Broker server are running Windows Server 2019.

  • Ensure that public trusted certificates are configured for both the RD Session Host and RD Broker server.

    [!NOTE]
    If both the RD Session Host and the RD Broker server share the same machine, set the RD Broker server certificate only. If the RD Session Host and RD Broker server use different machines, both must be configured with unique certificates.

  • The Subject Alternative Name (SAN) for each certificate must be set to the machine’s Fully Qualified Domain Name (FQDN). The Common Name (CN) must match the SAN for each certificate.

How to pre-configure settings for Remote Desktop web client users

This section will tell you how to use PowerShell to configure settings for your Remote Desktop web client deployment. These PowerShell cmdlets control a user’s ability to change settings based on your organization’s security concerns or intended workflow. The following settings are all located in the Settings side panel of the web client.

Suppress telemetry

By default, users may choose to enable or disable collection of telemetry data that is sent to Microsoft. For information about the telemetry data Microsoft collects, please refer to our Privacy Statement via the link in the About side panel.

As an administrator, you can choose to suppress telemetry collection for your deployment using the following PowerShell cmdlet:

 Set-RDWebClientDeploymentSetting -Name "SuppressTelemetry" $true

By default, the user may select to enable or disable telemetry. A boolean value $false will match the default client behavior. A boolean value $true disables telemetry and restricts the user from enabling telemetry.

Remote resource launch method

[!NOTE]
This setting currently only works with the RDS web client, not the Azure Virtual Desktop web client.

By default, users may choose to launch remote resources (1) in the browser or (2) by downloading an .rdp file to handle with another client installed on their machine. As an administrator, you can choose to restrict the remote resource launch method for your deployment with the following PowerShell command:

 Set-RDWebClientDeploymentSetting -Name "LaunchResourceInBrowser" ($true|$false)

By default, the user may select either launch method. A boolean value $true will force the user to launch resources in the browser. A boolean value $false will force the user to launch resources by downloading an .rdp file to handle with a locally installed RDP client.

Reset RDWebClientDeploymentSetting configurations to default

To reset a deployment-level web client setting to the default configuration, run the following PowerShell cmdlet and use the -name parameter to specify the setting you want to reset:

 Reset-RDWebClientDeploymentSetting -Name "LaunchResourceInBrowser"
 Reset-RDWebClientDeploymentSetting -Name "SuppressTelemetry"

Troubleshooting

If a user reports any of the following issues when opening the web client for the first time, the following sections will tell you what to do to fix them.

What to do if the user’s browser shows a security warning when they try to access the web client

The RD Web Access role might not be using a trusted certificate. Make sure the RD Web Access role is configured with a publicly trusted certificate.

If that doesn’t work, your server name in the web client URL might not match the name provided by the RD Web certificate. Make sure your URL uses the FQDN of the server hosting the RD Web role.

What to do if the user can’t connect to a resource with the web client even though they can see the items under All Resources

If the user reports that they can’t connect with the web client even though they can see the resources listed, check the following things:

  • Is the RD Gateway role properly configured to use a trusted public certificate?
  • Does the RD Gateway server have the required updates installed? Make sure that your server has the KB4025334 update installed.

If the user gets an «unexpected server authentication certificate was received» error message when they try to connect, then the message will show the certificate’s thumbprint. Search the RD Broker server’s certificate manager using that thumbprint to find the right certificate. Verify that the certificate is configured to be used for the RD Broker role in the Remote Desktop deployment properties page. After making sure the certificate hasn’t expired, copy the certificate in .cer file format to the RD Web Access server and run the following command on the RD Web Access server with the bracketed value replaced by the certificate’s file path:

Import-RDWebClientBrokerCert <certificate file path>

Diagnose issues with the console log

If you can’t solve the issue based on the troubleshooting instructions in this article, you can try to diagnose the source of the problem yourself by watching the console log in the browser. The web client provides a method for recording the browser console log activity while using the web client to help diagnose issues.

  • Select the ellipsis in the upper-right corner and navigate to the About page in the dropdown menu.
  • Under Capture support information select the Start recording button.
  • Perform the operation(s) in the web client that produced the issue you are trying to diagnose.
  • Navigate to the About page and select Stop recording.
  • Your browser will automatically download a .txt file titled RD Console Logs.txt. This file will contain the full console log activity generated while reproducing the target issue.

The console may also be accessed directly through your browser. The console is generally located under the developer tools. For example, you can access the log in Microsoft Edge by pressing the F12 key, or by selecting the ellipsis, then navigating to More tools > Developer Tools.

Get help with the web client

If you’ve encountered an issue that can’t be solved by the information in this article, you can report it on the Azure Virtual Desktop forum of Microsoft Tech Community.

On Windows Server 2022/2019/2016 with Remote Desktop Services deployed, you can install and configure the new HTML5-based Remote Desktop Web Client. This web client will allow any device (iOS, macOS, Android, Linux) to access your RemoteApps on RDS hosts directly from any browser (no need to install an additional RDP client).

Contents:

  • Installing RD Web HTML5 Client on Windows Server RDS
  • Connecting to the RDWeb Access Server with Web (HTML5) Client
  • Common RD Web Client Errors

Remote Desktop Web Client is available as an RD Web Access role feature on RDS servers running Windows Server 2022/2019/2016.

Before deploying the RD Web Client, you need to make sure that your RDS infrastructure meets the following requirements:

  • A deployed RDS farm infrastructure, including Remote Desktop Gateway, RD Connection Broker, and RD Web Access on Windows Server 2022/2019/2016;
  • Per User terminal licenses (RDS CAL) are used;
  • RDS Gateway and Web Access servers must use SSL certificates issued by a trusted CA. You can use free Let’s Encrypt certificates on RDS or Self-signed SSL certificates (only in limited mode).

Installing RD Web HTML5 Client on Windows Server RDS

HTML5 RD Web Client is not included in the Windows Server distribution. You need to manually install the RD Web Client Management module from the PowerShell Script Gallery.

Install the PowerShellGet module on a server with the RD Web Access role:

Install-Module -Name PowerShellGet -Force

Restart the PowerShell.exe console and install the RD Web Client Management module:

Install-Module -Name RDWebClientManagement

Install-Module -Name RDWebClientManagement

To accept the terms of the Microsoft Licence Agreement, press A.

Then install the latest version of the Web Remote Desktop package:

Install-RDWebClientPackage

After the RDWebClientPackage package is installed, check its properties with the following command:

Get-RDWebClientPackage

Get-RDWebClientPackage

As you can see, there appeared rd-html 5.0 package version 1.0.0.

Next, you need to export the SSL certificate from the server with the RDS Connection Broker role used for SSO (Enable Single Sign On) to a .cer file (BASE64 format).

  1. Open the computer certificate management console certlm.msc;
  2. Expand the section Personal -> Certificates;export rds certificate from computer cert storage
  3. Find your certificate that is used in your RDS farm, right-click on it, and choose select All Tasks -> Export;export rds certificate to x509 CER file
  4. Select the Base-64 encoded X.509 (.CER) export format and specify a file name.

Import the certificate to the RD Web Access server:

Import-RDWebClientBrokerCert C:RDBrokerCert.cer

Now you can publish the RD Web Client:

Publish-RDWebClientPackage -Type Production -Latest

Publish-RDWebClientPackage -Type Production -Latest

To test the RD Web Client, you can deploy it with the command:

Publish-RDWebClientPackage -Type Test -Latest

Connecting to the RDWeb Access Server with Web (HTML5) Client

After you have deployed the Web Client package on the RDS server, you can use a browser on a client computer to access RemoteApps and desktops. All the latest versions of Microsoft Edge, Google Chrome, Safari, and Mozilla Firefox are supported. In order to access RDS servers from a browser, just share the URL link to your RDWeb server with your users.

Be sure to use the FQDN of the RD Web server to connect. Note that this FQDN must be in your deployment’s RDS certificate (check the Common Name/CN and Subject Alternative Names /SAN fields)

Open the URL address:

https://RDWebFQDN.server.name/RDWeb/webclient/index.html

To access the test environment, use this URL address:

https://RDWebFQDN.server.name/RDWeb/WebClient-Test/index.html

The server name must match the RD Web Access server name in the SSL certificate.

Sign in to the RDWeb server using your credentials.

sign in form to RD Web using web client

During sign-in, you will be prompted about what local resources should be available in your RD session. Only clipboard and printer redirection are available. Currently, the local drives and any USB devices cannot be redirected through the HTML5 RDP client. Instead, use the mstsc.exe client, RDCMan, or analog.

After a successful sign-in, you will see all RemoteApps published in the RD collection. You can switch between them using the icons at the top of the window.

RemoteApps on RDWeb server over html5 client

When you run the RemoteApp, it will be displayed in the browser with the option to expand the window to full screen.

You can print from the Remote Desktop Web Client using the PDF Virtual Printer (Microsoft Print to PDF). Then you print something in the RD Web Client window, your browser prompts you to download a PDF file. You can open this PDF (using the built-in Edge PDF viewer or a third-party app) and print it to a local printer.

remote desktop web client - printer redirection

The dynamic changing of the RD window size and full-screen mode are available in the HTML5 RD web client. You can copy only text via the clipboard to your Remote Desktop session (but not files or graphics).

Common RD Web Client Errors

When you sign in to RD Web Access through the web client, you see a list of published Remote Apps, but when you try to launch any of them, you get an error:

Oops, we could not connect to Calculator. The connection to the remote PC was lost. This might be because of a network connection problem. If this keeps happening, ask your administrator or tech support for help.

The connection to the remote PC was lost. This might be because of a network connection problem

There may also be an error:

The web client needs a Remote Desktop Gateway to connect to desktops and apps.

These errors occur if you have deployed an RDS farm without an RD Web Gateway. If you only have RD Connection Broker deployed, you need to bind your RDS certificate to port 3392 (see description in section Connecting to RD Broker without RD Gateway in Windows Server 2019 https://learn.microsoft.com/en-us/windows-server/remote/remote-desktop-services/clients/remote-desktop-web-client-admin).

Error:

Your session ended because an unexpected server authentication certificate was received from the remote PC. Ask your admin or tech support for help.

rd web client Your session ended because an unexpected server authentication certificate was received from the remote PC

Check that your RD certificate is correct (the FQDN of the server with RD web client must be contained in the certificate). Verify that this certificate is assigned to all roles in your RDS deployment. Separately, check that this certificate is set in the RDGW server settings (SSL Certificates tab). If possible, use a wildcard certificate.

Mail-in-a-Box — это бесплатный инструмент с открытым исходным кодом, позволяющий создавать почтовые серверы. Его разработчиком является программист,

Взято тут Цели статьи Введение Данная статья будет написана на базе операционной системы Debian. Но в

To get started with Docker Engine on Debian, make sure you meet the prerequisites, then install Docker. Prerequisites

Рассмотрим установку GitLab-сервера в контейнере через docker compose на виртуальном сервере Ubuntu 20.04 LTS, подключение используется

В данной статье рассматриваются инструменты, советы с примерами по переходу от устаревшего канального драйвера chan_sip на новый chan_pjsip/res_pjsip, который

Коллеги, добрый день. Сегодня мы поговорим о том, как можно предоставить удаленный доступ нашим дорогим пользователям к внутренним ресурсам организации из сети интернет. Обсудим плюсы и минусы подходов, узнаем нюансы конфигурации и эксплуатации сервисов.

Сначала познакомимся с ролью Remore Gateway, затем перейдем к Web Client. Увидим как будет выглядеть подключение со стороны клиента с разных ОС. Также подведем некоторые итоги по проведенной работе.

Remote Desktop Gateway

Описание функционала

Компонент RD Gateway представляет из себя стандартную (доступную из коробки) роль Windows Server. Суть заключается в том, что на периметре локальной сети разворачивается хост на котором инсталлируется компонент RD Gateway. Как нам подсказывает название, он является шлюзом для удаленных подключений. Само подключение производится через RDP клиент (в ОС отличных от Windows может потребоваться поддержка функционала шлюза подключений).

Принципиальным отличием работы компонента от обычного подключения RDP является тот факт, что соединение RDP устанавливается поверх HTTPS (веб-сервер IIS будет инсталлирован автоматически при установке).

Применение этой технологии позволяет более гибко подойти к вопросам публикации, управления и мониторинга удаленных подключений наших коллег:

  • По части публикации — нам достаточно опубликовать один порт в сеть интернет, нет необходимости плодить большое количество портов при публикации дополнительных узлов подключения.
  • По части управления — мы получаем инструменты политик авторизаций, где мы можем явно указывать: кто, куда и как может подключаться.
  • По части мониторинга — мы получаем возможность ведения лога подключений, удачных и неудачных попыток при помощи журналов Windows.

Предварительные требования

  • Windows Server 2008+ в качестве ОС узла установки роли.
  • Наличие развернутого домена Active Directory.

Наш тестовый стенд

Чтобы легче было понимать материал, опишу нашу тестовую лабораторию на которой мы будем проводить тесты.

Стенд состоит из 4х узлов:

  • lab-dc1.party.hard — контроллер домена.
  • lab-rds1.party.hard — сервер, на котором уже создано тестовое развертывание служб удаленных рабочих столов.
  • lab-rdgw1.party.hard — сервер шлюза удаленных рабочих столов и компонента web client.
  • lab-client1 — узел вне домена, моделирует клиентское подключение.

Установка, конфигурация и проверка роли Remote Desktop Gateway

Установить роль возможно произвести разными способами. Мы рассмотрим способ через развертывание служб удаленных рабочих столов.

Установка через развертывание служб удаленных рабочих столов

Начнем с сервера lab-rds1.party.hard. Для инсталляции роли нам необходимо в Диспетчере серверов, где уже существует развертывание инфраструктуры RDS, добавить сервер lab-rdgw1.party.hard для управления.

Производим поиск и добавление сервера для управления.

Затем, через иконку RD Gateway, добавить роль узлу lab-rdgw1.party.hard.

Выбираем интересующую нас роль для развертывания.
Указываем наш недавно добавленный для управления сервер.
Указываем внешнее имя SSL серификата по которому будут подключаться клиенты.
Проверяем указанные настройки и подтверждаем.
В результате мы увидим подобное окно, сообщающее о завершении установки роли.

Следующим этапом мы займемся конфигурацией сертификатов.

Выберем пункт Создать новый сертификат.
Заполним необходимые поля и чекбоксы.

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

Воспользуемся статусом готовности и нажмем кнопку Применить.
Теперь статус изменился на Успех.
Проверяем подключение со стороны клиента

Поздравляю, мы произвели необходимый минимум для работы Remote Desktop Gateway. Теперь можно проверять как технология выглядит со стороны внешнего пользователя, которому очень хочется получить удаленный доступ.

Для этого пользователю понадобиться выполнить подключение через RDP клиент. Введем внешнее имя нашего шлюза, которое мы указывали при конфигурации. Также включим настройку Использовать мои учетные данные шлюза удаленных рабочих столов для удаленного компьютера для того, чтобы не вводить одни и те же учетные данные несколько раз.

Также необходимо определить внутренний хост к которому необходимо подключиться с указанием учетных данных.

Так выглядит подключение к шлюзу через стандартный RDP клиент Windows.

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

В конечном итоге клиент выполняет RDP соединение с интересующим его хостом, который находится позади шлюза.

Мониторинг удаленных подключений

Для того, чтобы узнать информацию об успешных или неудачных попытках подключения к шлюзу мы можем воспользоваться инструментом Просмотр событий. Нужную нам информацию мы найдем журналах Безопасность и Microsoft-Windows-TerminalServices-Gateway.

Для примера я произведу 2 попытки входа.

Первая — учетные данные некорректны.

В журнале Безопасность, в поле Account Name и Account Domain мы можем увидеть введенные пользователем данные. Также мы видим причину неудачи авторизации.
В журнале Microsoft-Windows-TerminalServices-Gateway мы можем увидеть запрос на удаленное подключение.

Вторая — учетные данные корректны.

Процедура авторизации завершилась успехом.
Журнал Microsoft-Windows-TerminalServices-Gateway также зафиксировал успешное соединение пользователя.

Нюансы эксплуатации

В ходе изучения технологии я столкнулся с несколькими нюансами которые желательно знать перед вводом в эксплуатацию.

Необходимость решения вопроса с SSL сертификатом для подключения к шлюзу

Этот пункт подразумевает обязательное доверие со стороны клиентов к внешнему сертификату безопасности. Проще говоря, если у клиента нет доверия к сертификату, то подключиться к шлюзу не получится.
Вариантов решения не так уж и много:

  • Использование самоподписанного сертификата и ручной импорт клиентам в случае если ПК не в домене и автоматизация этого процесса через GPO если ПК в домене.
  • Использование бесплатного сертификата Let’s Encrypt (90 дней). О выпуске и установке сертификата вы можете почитать — здесь.
  • Покупка сертификата безопасности на год.
Невозможность указать нестандартный порт подключения на старых RDP клиентах Microsoft

Что касается этого пункта, мы можем столкнуться с ситуацией, когда внешний порт уже занят и нам необходимо выбрать другой.

Такой сценарий, безусловно, поддерживается, однако проблемы могут возникнуть на клиентских машинах со старой версией RDP клиента. При попытке указать внешний адрес и порт подключения будет выдаваться ошибка о невозможности выполнения этого действия.

Решение только одно — установка обновления RDP клиента. Начиная с Windows 8 клиент уже обновлен и такой проблемы замечено небыло.

Возможные проблемы при подключении с ОС отличных от Windows

Функционал, необходимый для подключения через шлюз удаленных рабочих столов, интегрирован в стандартный RDP клиент Microsoft. Однако, если необходимо подключаться с других ОС, необходимо предварительно проверить возможность подключения через шлюз.

HTML5 Web client

Описание функционала

Компания Microsoft пошла дальше в вопросах предоставления удаленного доступа пользователям и выпустила специальный Web client компонент, позволяющий подключаться к рабочему столу или RemoteApp приложению через обычный веб-браузер.

Подобный подход имеет большое преимущество перед классическим подключением через шлюз. Теперь мы не зависим от ОС или конфигурации RDP клиента. Нам достаточно иметь на устройстве любой современный браузер для удаленного подключения.

Схема работы примерно та же. Мы организуем хост с установленным компонентом Web Client на периметре сети и публикуем один порт в сеть интернет.

Также у нас появляется возможность игнорировать вопросы связанные с клиентским доверием к SSL сертификатам. Т.к подключение происходит через веб-браузер, мы можем просто закрыть глаза и использовать самоподписанный сертификат для целей удаленного подключения без необходимости получения или приобретения сторонних.

Также прошу обратить внимание, что компонент Web client и роль Remote Desktop Web Access не одно и тоже. RD Web Access позволяет нам публиковать сеансы и RemoteApp приложения, которые, по факту, будут подключаться через RDP. Web client позволяет нам устанавливать сессию непосредственно в веб-браузере.

Предварительные требования

  • В сети должно быть сконфигурировано развертывание удаленных рабочих столов.
  • Версия ОС на узлах с ролями Connection Broker, Web Access, Session Host, Gateway должна быть Windows Server 2016+.
  • Лицензии CAL должны выдаваться на пользователя, не на устройство.
  • На узле Web client должно быть установлено обновление KB4025334.
  • Наличие развернутого домена Active Directory.

Установка, конфигурация и проверка Web client

В этой статье мы развернем компонент Web client, как и Remote Desktop Gateway, на отдельном узле — lab-rdgw1.party.hard. Воспользуемся уже сконфигурированной инфраструктурой, описанной выше.

Т.к мы планируем развернуть компонент на узле lab-rdgw1.party.hard, нам необходимо установить на него роль Web Access, иначе, мы столкнемся с невозможностью установки Web client.

Подобная ошибка возникнет при отсутствии роли RD Web Access на узле, в момент публикации Web client.

Для этого воспользуемся способом установки через развертывание служб удаленных рабочих столов и добавим управляемый хост в Диспетчере серверов.

Теперь перейдем к установке роли Web Access. Для этого выберем пункт Добавить сервера Web Access в Обзоре развертывания.

Укажем узел для развертывания роли.

Подтверждаем установку и ждем ее завершения.

Теперь переходим непосредственно к установке Web client. На текущий момент установка компонента возможна только через PowerShell. Может быть, со временем, разработчики добавят возможность установки через GUI.

Сперва нам необходимо обновить модуль PowershellGet. Открываем Powershell от имени администратора и вводим:

Install-Module -Name PowerShellGet -Force

Для корректной работы нам нужно закрыть и еще раз открыть Powershell от имени администратора, иначе установленный модуль не будет работать.

После установки PowershellGet устанавливаем модуль RDWebClientManagement. Для этого вводим в Powershell:

Install-Module -Name RDWebClientManagement

Также подтверждаем установку и соглашаемся с условиями в процессе выполнения командлета.

Теперь установим модуль Web client выполнив в Powershell командлет:

Install-RDWebClientPackage

Теперь ненадолго переместимся на узел с ролью RD Connection Broker. Отсюда нам нужен сертификат который уже или будет назначен для роли RD Connection Broker. Так как мы разворачиваем тестовый стенд, нам проще создать новый самоподписанный.

В разделе коллекций, меню задачи, выбираем редактирование свойств развертывания.
В появившемся окне переходим в раздел сертификаты. Выбираем Создать новый сертификат для роли RD Connection Broker — Enable Single Sign On.
Указываем имя сертификата, пароль. Также определяем место сохранения.
Теперь мы готовы к назначению нового сертификата. Для этого нажмем Применить.
Если мы видим подобную картину, значит сертификат был назначен успешно.

После этого нам необходимо найти его в оснастке Сертификаты учетной записи компьютера в виде ключевой пары .pfx и экспортировать публичную часть.

Сформированные нами сертификаты можно найти в папке Личное.
Нам необходимо экспортировать только публичную часть, указываем это при экспорте.

Только что полученный сертификат переносим на сервер lab-rdgw1.party.hard любым доступным способом и сами возвращаемся на него же. 🙂

Импортируем открытую часть сертификата для развертывания Web client.

Import-RDWebClientBrokerCert "C:\users\Administrator\Desktop\lab-rds1.party.hard.cer"

И наконец публикуем компонент.

Publish-RDWebClientPackage -Type Production -Latest
Дополнительная литература

Для более подробных инструкций предлагаю посмотреть документацию Microsoft.

https://docs.microsoft.com/en-us/windows-server/remote/remote-desktop-services/clients/remote-desktop-web-client-admin

Проверяем подключение со стороны клиента

Итак, проверим как наши пользователи будут удаленно подключаться. Для этого запускаем веб-браузер и вводим внешний fqdn-адрес:
https://ext-lab-rdgw1.party.hard/RDWeb/webclient/

Перед нами появляется приглашение авторизации. Воспользуемся случаем и укажем учетные данные.
После успешного входа перед нами появляются опубликованные в коллекциях ресурсы.

Запустим, единственный в нашем случае, опубликованный ресурс.

Браузер вежливо предлагает нам пробросить в удаленный сеанс буфер обмена и принтеры.
Производим подключение.
Мы попадаем в удаленную сессию на узле lab-rds1.party.hard.

Также, для полноты картины, я решил добавить в статью подключение с устройства под управлением Linux.

Для этого точно также запускаем веб-браузер и вводим внешний fqdn-адрес:
https://ext-lab-rdgw1.party.hard/RDWeb/webclient/

Нас встречает уже знакомая процедура авторизации.
Подключение установлено с устройства под управлением Linux и книжной ориентацией экрана.

Подключение к хостам вне коллекции RDS

У некоторых может возникнуть вопрос:

Возможно ли подключение через веб-браузер к серверам, которые не находятся в коллекции RDS? А к клиентским компьютерам?

Да, такое возможно с небольшой хитростью. Для этого нам необходимо опубликовать RemoteApp приложение удаленного рабочего стола (mstsc) с необходимыми параметрами подключения.

Ниже я покажу пример публикации удаленного подключения к серверу lab-dc1.party.hard.

Подход имеет свои недостатки. Таким образом мы, фактически, устанавливаем 2 RDP соединения. Сначала с узлом RDSH и отсюда устанавливаем новое соединение с нужным нам хостом.

При использовании хитрости описанной выше, наш пользователь увидит в веб-панели только опубликованное приложение, без значка подключения к RDSH узлу коллекции. Это связано с тем, что коллекции могут быть двух типов:

  • Сессии
  • Приложения RemoteApp

Поэтому, если необходимо сохранить у пользователя как подключение к RDSH узлу, так и к другому серверу или клиентскому компьютеру, необходимо изменить один параметр в реестре.

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\CentralPublishedResources\PublishedFarms\<collection>\RemoteDesktops\<collection>\ShowInPortal

Значение этого ключа должно быть равно 1.

После изменения значения пользователь увидит оба варианта подключения.

Мониторинг удаленных подключений

Для того, чтобы узнать информацию об успешных или неудачных попытках подключения к Web client мы можем воспользоваться инструментом Просмотр событий. Нужную нам информацию мы найдем журнале Безопасность.

Для примера я произведу 2 попытки входа.

Первая — учетные данные некорректны.

В поле Account Name и Account Domain мы можем увидеть введенные пользователем данные. Также мы видим причину неудачи авторизации.

Вторая — учетные данные корректны.

При использовании инструментов для автоматизации процесса можно получить более удобный мониторинг и интегрировать его в другие сервисы (напр. Zabbix).

Нюансы эксплуатации

Отсутствие возможности копирования файлов

К сожалению, на момент публикации статьи в компоненте отсутствует возможность копировать файлы между системами. Возможно, в вашей рабочей деятельности это будет являться важным фактором, поэтому это стоит учитывать.

Двойное RDP подключение к хостам вне коллекции RDS

На текущий момент мне не удалось напрямую подключиться к узлам, которые не находятся в RDS коллекции. Пока что мне известен только способ через двойное подключение, где в качестве прокси будет использован RDSH узел. Для пользователя использование этого метода может стать причиной низкого быстродействия удаленного подключения.

Некорректная работа с NAT

При эксплуатации была выявлена проблема, при которой не удавалось установить соединение с RDSH узлами. В ходе диагностики выяснилось, что если доступ к узлу с компонентом Web Client осуществляется с помощью трансляции портов отличных от 443, то подключение не может быть установлено. Если транслировать внешний порт 443 в такой же внутренний, то подобной проблемы не возникает.

Итоги

Мнение

В ходе знакомства с технологиями у меня сложилось впечатление того, что они неплохо друг друга дополняют и могут практически полностью закрыть потребности как пользователей, так и администраторов.

Большой удачей является тот факт, что обе технологии могут работать вместе в гибридном варианте. Более того, они работают через один порт и через один и тот же сервис IIS, который устанавливается при развертывании, что также упрощает жизнь специалистам по эксплуатации.

Как уже упоминалось выше, при использовании некоторых хитростей можно расширить зону применения (публикация rdp клиента для дальнейшего подключения на компьютеры не входящие в коллекции) и предоставить нашим коллегам удаленный доступ вне зависимости от типа и конфигурации их ОС.

Также администраторы получают возможность централизовано (через свойства коллекций или Active Directory) управлять доступом и заниматься мониторингом подключений. Это очень удобно с точки зрения интеграции с уже существующей инфраструктурой. У специалистов по эксплуатации отпадает необходимость дружить другое ПО с учетными данными пользователей в Active Directory.

Коллеги! Если у вас есть замечания или дополнения по предмету этой статьи, прошу оставить комментарий. Возможно, они кому-то пригодятся в будущем.

Несмотря на то, что Microsoft за последние несколько лет портировала свой RDP клиент под различные платформы (iOS, macOS, Android, есть даже отдельное UWP приложение для Windows 10), многим пользователям хотелось бы получать удаленный RDP доступ к RDS серверам и опубликованным приложениям из любого браузера. Для этих целей Microsoft несколько лет разрабатывала отдельный Remote Desktop Web Client на базе HTML5. Совсем недавно была выпушена первая официальная версия RD Web Client. В этой статье мы рассмотрим, как установить и настроить Remote Desktop Web Client и использовать его для доступа к RemoteApp на RDS сервере с Windows Server 2016 из обычного браузера.Содержание:

  • Требования к инфраструктуре веб клиента Remote Desktop
  • Установка RD Web HTML5 клиента на Windows Server 2016 RDS
  • Доступ к RDWeb серверу через браузер с поддержкой HTML5

Требования к инфраструктуре веб клиента Remote Desktop

Remote Desktop Web Client пока доступен как расширение для роли RD Web Access на RDS серверах под управлением Windows Server 2016/2019.

Перед внедрением RD Web Client нужно убедится, что ваша RDS инфраструктура соответствует следующим требованиям:

  • Наличие развернутой инфраструктуры RDS, включающей шлюз Remote Desktop Gateway, RD Connection Broker и RD Web Access на Windows Server 2016/2019;
  • Используются терминальные лицензии (RDS CAL) в режиме Per User;
  • На серверах RDS Gateway и Web Access должны использоваться SSL сертификаты, выданные доверенным CA (самоподписанные сертификаты SSL использовать нельзя);
  • В качестве RDP клиентов можно использовать только Windows 10 или Windows Server 2008 R2 (и выше);
  • На RDS серверах нужно установить обновление (KB4025334 – от 18 июля 2017 года), или любое следующее кумулятивное обновление для Windows Server.

Как мы уже говорили, на данный момент доступна версия RD Web Client для Windows Server 2016 / 2019, однако на текущий момент этот компонент не входит в состав дистрибутива WS 2019 и устанавливается отдельно.

На сервере с ролью RD Web Access необходимо установить модуль PowerShellGet:

Install-Module -Name PowerShellGet -Force

Закройте консоль PoSh и запустите еще раз. Теперь нужно установить модуль RD Web Client Management:

Install-Module -Name RDWebClientManagement

Install-Module -Name RDWebClientManagement

Чтобы принять лицензионное соглашение Microsoft, введите A.

Теперь нужно установить последнюю версию пакета Web Remote Desktop:

Install-RDWebClientPackage

После установки пакета, проверьте его свойства командой:

Get-RDWebClientPackage

Get-RDWebClientPackage

Как вы видите, у вас появился пакет rd-html 5.0 версия 1.0.0.

Далее вам нужно с сервера с ролью RDS Broker экспортировать SSL сертификат, использующийся для SSO (Enable Single Sign On) в .cer файл (BASE64) Можно выполнить экспорт из графической оснастки управления сертификатами компьютера certlm.msc, нужный сертификат находится в разделе Personal\Certificates.

Импортируйте сертификат на сервере RD Web:

Import-RDWebClientBrokerCert C:\RDBroker.cer

Теперь можно опубликовать клиент RD Web:

Publish-RDWebClientPackage -Type Production -Latest

Publish-RDWebClientPackage

Для тестового использования клиента RD Web можно использовать команду:

Publish-RDWebClientPackage -Type Test -Latest

Доступ к RDWeb серверу через браузер с поддержкой HTML5

После того, как вы развернули пакет Web Client на RDS сервере, вы можете запустить браузер на клиентском компьютере. Поддерживаются все последние версии браузеров Edge, IE 11, Google Chrome, Safari и Firefox (пока веб клиент RD работает далеко не на всех мобильных устройствах). Для доступа к RDS серверам из браузера вам достаточно передать пользователям ссылку на сервер RDWeb.

Откройте URL адрес:

_https://FQDN.server.name/RDWeb/webclient/index.html

Для доступа к тестовой среде используйте адрес:

_https://FQDN.server.name /RDWeb/WebClient-Test/index.html

Имя сервера должно соответствовать имени сервера RD Web Access в сертификате.

Авторизуйтесь на RDWeb сервере под своей учетной записью.

веб клиент rdp

При входе у вас будет запрошено какие локальные ресурсы должны быть доступны в RD сессии. Пока доступно только перенаправление буфера обмена и принтеров (локальные диск и USB устройства через веб-клиент RDP не пробрасываются, нужно использовать тяжёлый клиент mstsc.exe)

Перед вами должен появится список опубликованных RemoteApps и RDP ярлыков. Вы можете переключаться между ними с помощью иконок в верхней части окна.

список RemoteApps в браузере html5

Печать из RD Web клиента осуществляется через виртуальный PDF принтер (Microsoft Print to PDF). Вы отправляете документ на печать в окне веб клиента и браузер предлагает скачать сформированный pdf файл, который можно открыть и распечатать на локальный принтер.

RD Web клиент печать через виртуальный PDF принтер

В HTML5 доступно динамическое изменение окна удаленного рабочего стола и возможность запуска в полноэкранном режиме. Через буфер обмена можно копирвать только текст (файлы, графика через буфер веб клиента не копируются).

Что интересно, в RDP веб клиенте теперь видно количество памяти и CPU на RDS сервере, которое использует то или иное приложение. Просто щелкните по значку опубликованного приложения.

WindowsWebClientcoverPH67

The Remote Desktop web client enables users to access the enterprise Remote Desktop infrastructure through a compatible web browser. The HTML 5 Remote Desktop Web Client is available in newer versions of Windows Server that are configured as a Remote Desktop Services Deployment at no additional cost. Users will be able to interact with remote apps or desktops as they would with a local PC no matter where they are. In this guide, you will learn “​​​​​Publish Remote Desktop Web Client: How to ​​​​​Install HTML Web Client for Microsoft RDS. Kindly refer to these related guides on RDS: How to set up and configure Remote Desktop Services via Standard Deployment on Windows Server 2012, and 2016, and how to change a password on a Remote Desktop session.

Once you set up your Remote Desktop web client. All your users need to get started is the URL where they can access the client, their credentials, and a supported web browser. how to fix “The logon attempt failed for the remote desktop connection“, how to resolve Microsoft RDP Connection Black Screen, and, how to change a password on a Remote Desktop session.

What is a Web client?

A Web client typically refers to the Web browser in the user’s device or mobile device. It may also refer to extensions and helper applications that enhance the browser to support services. The web client does support using Azure AD Application Proxy but does not support Web Application Proxy at all. Here is a comprehensive guide on “how to install RDS via Quick Start Deployment: Install, Publish, Update and Uninstall Remote Desktop Web Client“

This allows devices with a modern web browser to access an RDS server without having to use any additional apps. This is a perfect solution for Mac and Chrome Book users as it will allow them to use the deployment without needing to install the Microsoft RDP Application. Here are some additional guides you may also want to see: How to activate and Press Ctrl+Alt+Del in Anydesk for Remote Access Connection to the Windows system.

If you used the web client during the preview period and installed a version prior to 1.0.0, you must first uninstall the old client before moving to the new version. If you receive an error that says “The web client was installed using an older version of RDWebClientManagement and must first be removed before deploying the new version. Please see The following servers in this deployment are not part of the deployment Pool: Create an RDS Session Host and Collection.

Prerequisite to ​​​​​Install HTML Web Client for Microsoft RDS

Prior to setting up and configuration of the HTML 5 Web Client, kindly ensure that the RDS infrastructure requirements are met.

  • RDS deployment has an RD Gateway, RD Connection Broker, and RD Web Access roles installed on Windows Server 2016 or later.
  • Make sure your deployment is configured for per-user client access licenses (CALs) instead of per device, otherwise all licenses will be consumed.
  • Ensure the RDS Deployment servers have the latest Windows updates installed.
  • RDS deployment must have valid SSL (public trusted certificates) issued by a trusted CA on the server containing the Gateway and Web Access roles. Self-signed certificates will not work in this case.
  • At the time of writing this piece, ensure you install the Windows 10 KB4025334 update on the RD Gateway. Later cumulative updates may already contain this KB. If you have been applying updates promptly, this shouldn’t be a problem.

How to Publish the Remote Desktop web client

To install the web client for the first time. You will need to obtain the certificate used for Remote Desktop connections and export it as a .cer file. Copy the .cer file from the RD Connection Broker to the server running the RD Web role. You can use the MMC for exporting certs. Here are some related guides: How to export a certificate in PFX format in Windows. H and how to install Let’s Encrypt Certificates with IIS on a Windows. Export the certificate using the following options:

When running Windows Server 2016

You will only need to perform this step if you are running Windows Server 2016. On the RD Web Access server, launch an elevated PowerShell Prompt. Since you are running WS 2016, you will need to first update the PowerShellGet module since the inbox version doesn’t support installing the web client management module.

To update PowerShellGet, run the following cmdlet below. After this command is run, you will need to restart PowerShell before the update can take effect, else the module may not work.

Install-Module -Name PowerShellGet -Force

Install the Remote Desktop web client management Module

To install the Remote Desktop web client management PowerShell module from the PowerShell gallery with this cmdlet and image below.

Install-Module -Name RDWebClientManagement

InstallModuleRDWeb

Enter Y for Yes or A for Yes to All so that the following Window below will not be prompted. But for me, I have entered A as I wish to show you all the needed steps.

Acceptthelicense343

Next, run the command below to download and install the latest version of the Remote Desktop Web Client. Please see RDS client access licenses: How to install a new Per User Remote Desktop Services license.

InstallRDWebClient

Next, run this cmdlet with the bracketed value replaced. Please use the path of the .cer file that you copied from the RD Broker.

Import-RDWebClientBrokerCert <.cer file path>

NoteIf you export a certificate using the Windows export wizard, the CER-formatted file is Base64 Encoded x. 509 and is the equivalent to PEM.The only time CRT and CER can safely be interchanged is when the encoding type can be identical. For example, PEM-encoded CRT is the same as PEM-encoded CER.

The PEM format is the most common format used for certificates. Extensions used for PEM certificates are cer, crt, and pem.

Importcert6789i

See how to Resolve Microsoft RDP Connection Black Screen. And RDP users are unable to change passwords on the first logon or after expiration: You must change your password before logging on the first time, please update your password.

Publish RDSWeb Client Package

Since the client has been installed in one of the above steps, run the cmdlets below to publish the client.

Publish-RDWebClientPackage -Type Production –Latest

Publish-RDWebPackage63

As soon as all the steps above are complete. The HTML 5 Web Client is now accessible by using the URL below. Add User to Remote Desktop Users Group in AD. Please see how to allow RDP access for non-administrators on a Domain Controller. It’s important to use the server name that matches the RD Web Access public certificate in the URL.

https://<Your FQDN>/RDWeb/webclient/index.html

AccessingWenClient67uhebdn

Note: When running the Publish-RDWebClientPackage cmdlet. You may see a warning that says per-device CALs are not supported, even if your deployment is configured for per-user CALs. If your deployment uses per-user CALs, you can ignore this warning. We display it to make sure you’re aware of the configuration limitation.

Please see How to add and remove RDS Collection, how to Remove Remote Desktop Services Role on Windows Server, and how to install a new Per User Remote Desktop Services license.

I hope you found this blog post helpful on ​​​​​how to Publish Remote Desktop Web Clients: ​​​​​Install HTML Web Client for Microsoft RDS. If you have any questions, please let me know in the comment session.

  • Microsoft remote desktop assistant windows 10
  • Microsoft remote desktop скачать для windows 10 скачать
  • Microsoft security essentials для windows 7 не обновляется
  • Microsoft remote desktop скачать для windows 10 torrent
  • Microsoft recovery tool windows 10