Публикация служб удаленных рабочих столов через Forefront Unified Access Gateway (UAG)


Дисклаймер: данная публикация имеет целью донести до русскоязычного сообщества в цельном виде набор статей из библиотеки TechNet, до настоящего момента на русский язык не переведенных. Обо всех неточностях перевода просьба сообщать на v-yuvino@microsoft.com. Спасибо заранее.

 

Общие сведения о публикации Remote Desktop Services

Forefront Unified Access Gateway (UAG) позволяет предоставлять доступ к опубликованным приложениям RemoteApp и удаленным рабочим столам. Интегрируясь со шлюзом удаленых рабочих столов, UAG обеспечивает шлюз уровня приложений для служб и приложений RDS. Ранее RDS публиковались посредством тунеллирования RDP-трафика от конечной точки до серверов RDS при помощи компонента Socket Forwarding; трафик в этом случае не контролировался, а на клиентских конечных точках необходимо было устанавливать .оконечный компонент Socket Forwarding.

Интеграция Forefront UAG со шлюзом удаленных рабочих столов

Forefront UAG интегрируется со шлюзом удаленных рабочих столов в следующих компонентах:

  • Удаленный доступ ─ удаленные пользователи получают доступ к удаленным рабочим столам и приложениям RemoteApp через портал  Forefront UAGl:
    • Удаленные рабочие столы ─ предоставляют полный доступ к рабочим столам внутри организации.
    • Приложения RemoteApp ─ публикация одного или нескольких приложений на одиночном сервере RDS, либо посредством брокера подключений (RD Broker).
  • Firewall traversal ─ шлюз удаленных рабочих столов передает RDP-трафик на порт 443 по туннелю HTTP SSL/TLS. В большинстве организаций этот порт открыт для интернет-подключений. Функция проброса Forefront UAG позволяет пользователям получать доступ к внутренним приложениям и ресурсам, расположенным за брандмауэром в частных сетях.либо за NAT-устройствами без установки на стороне клиента дополнительного ПО.

Forefront UAG и поддержка запросов клиентов RDC

Forefront UAG обрабатывает запросы RDC-клиентов к серверам RDS по следующей схеме:

  1. Клиент входит на портал UAG при помощи интернет-обозревателя.
  2. Клиент авторизуется на портале согласно предъявляемым требованиям и получает доступ в соответствии с назначенными разрешениями.
  3. Конечный пользователь запускает на портале приложение RemoteApp либо удаленный рабочий стол.
  4. Портал активирует клиентское RDC-приложение при помощи компонента ActiveX

 

Замечание:

Параметры активации компонента ActiveX основаны на состоянии конечной точки. Это позволяет предоставить пользователю только тот функционал, который возможен для конечной точки

  1. Клиент RDC на конечной точке активирует «RDP через HTTPS»-подключение к серверу Forefront UAG.
  2. HTTPS-подключение обрывается на сервере UAG. Forefront UAG использует встроенный шлюз удаленных рабочих столов для поддерживания соединения. UAG проверяет успешность входа пользователя на портал и его аутентификации при помощи сеансовых cookie-файлов и затем активизирует политики входа конечной точки.
  3. Устанавливается RDP-сессия от Forefront UAG к узлам RDS.

 

 

Настройка удаленных подключений, опубликованных через Forefront Unified Access Gateway (UAG) при помощи пользовательского шаблона удаленных рабочих столов.

 

Для данного шаблона доступны следующие опции настройки:

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

Замечание:

Данная процедура предполагает, что приложения уже опубликованы через Forefront UAG. Также в этих процедурах используется механизм CustomUpdate, дополнительную информацию о котором можно найти в  Forefront UAG customization guide.

 

Автоматическое подключение к серверу удаленных рабочих столов

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

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

Замечание:

Данный тип настройки имеет преимущество перед настройками переменной RDHosts, описанными в разделах «Выбор сервера RDS при подключении» и «Отображение списка доступных  RDS-серверов»

 

Последовательность действий:

 В каталоге  ...Microsoft Forefront Unified Access Gateway\von\InternalSite\inc\CustomUpdate\ создайте файл с именем rdpdata.inc.

 

Замечание:

Если настройка выполняется для определенного канала связи (транка), имя файла должно выглядеть так: <trunk_name>1rdpdata.inc.

  1. В файле rdpdata.inc назначьте переменной uagtssrv  IP-адрес или имя компьютера:

 

2.  <%

3.  set usrinfo = GetSessionLeadUser(g_cookie)

4.   

5.  if usrinfo.Domain = "mydomain1" then

6.      uagtssrv = usrinfo.User & "-desktop"

7.  else

8.      uagtssrv = "192.168.1.112"

9.  end if

%>

Данный пример предполагает, что у всех все пользователей домена “mydomain1” рабочие станции имеют имя вида “username-desktop”. После щелчка по ссылке удаленного подключения на портале, пользователи домена “mydomain1”  автоматически подключатся к их удаленным рабочим столам; пользователи других доменов будут перенаправлены на рабочий стол сервера с адресом 192.168.1.112.

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

Процесс входа пользователя через Forefront UAG может быть настроен на определение доступных серверов для работы с опубликованными приложениями. You can customize the login process to determine the hosts that will be available to users when they use the remote desktop applications.

Порядок действий

  1. В каталоге  ...Microsoft Forefront Unified Access Gateway\von\InternalSite\inc\CustomUpdate\ создайте файл с именем PostPostValidate.inc.

Замечание:

Если настройка выполняется для определенного канала связи (транка), имя файла должно выглядеть так: <trunk_name> PostPostValidate .inc.

  1. В файле PostPostValidate назначьте переменной  RDHosts  IP-адрес или имя компьютера при помощи функции SetSessionParam:

3.  <%

4.  set usrinfo = GetSessionLeadUser(g_cookie)

5.   

6.  if usrinfo.Domain = "mydomain1" then

7.      SetSessionParam g_cookie, "RDHosts", usrinfo.User & "-desktop"

8.  else

9.      uagtssrv = "192.168.1.112"

10.end if

%>

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

Отображение списка доступных  RDS-серверов

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

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

Порядок действий

  1. В каталоге  ...Microsoft Forefront Unified Access Gateway\von\InternalSite\inc\CustomUpdate\ создайте файл с именем PostPostValidate.inc.

Замечание:

Если настройка выполняется для определенного канала связи (транка), имя файла должно выглядеть так: <trunk_name> PostPostValidate .inc.

  1. В файле PostPostValidate назначьте переменной  RDHosts  список IP-адресов или имен компьютеров через точку с запятой при помощи функции SetSessionParam:

1.  <%

2.  set usrinfo = GetSessionLeadUser(g_cookie)

3.   

4.  if usrinfo.Domain = "mydomain1" then

5.      SetSessionParam g_cookie, "RDHosts", usrinfo.User & "-desktop;" & usrinfo.User & "-lab"

6.  else

7.      uagtssrv = "192.168.1.112;192.168.1.113;192.168.1.114"

8.  end if

%>

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

Замечание:

Если переменной RDHosts назначить только один адрес или имя компьютера, при щелчке по ссылке пользователь будет автоматически перенаправлен на указанный сервер.

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

  1. В каталоге  ...Microsoft Forefront Unified Access Gateway\von\InternalSite\inc\CustomUpdate\ создайте файл с именем PostPostValidate.inc.

Замечание:

Если настройка выполняется для определенного канала связи (транка), имя файла должно выглядеть так: <trunk_name> PostPostValidate .inc.

  1. В файле PostPostValidate назначьте переменной  RDHosts.<Application_ID>  список IP-адресов или имен компьютеров через точку с запятой при помощи функции SetSessionParam:

 

3.  <%

4.  ' In this sample, the trunk name is "UAGTrunk" and the names of the published Remote

5.  ' Desktop application is "Rm Desk 02" (the RDP application is

6.  ' built from these names and is written in the file:

7.  ' ...Microsoft Forefront Unified Access Gateway\common\conf\rmapplist.cfg).

8.   

9.  set usrinfo = GetSessionLeadUser(g_cookie)

10. 

11.if usrinfo.Domain = "mydomain1" then

12.    SetSessionParam g_cookie, "RDHosts.UAGTrunk__Rm_Desk_02__uag_selective_remote_desktop", usrinfo.User & "-desktop;" & usrinfo.User & "-lab"

13.else

14.    SetSessionParam g_cookie, "RDHosts.UAGTrunk__Rm_Desk_02__uag_selective_remote_desktop", "192.168.1.112;192.168.1.113;192.168.1.114"

15.end if

%>

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

 

 

 

Замечание:

Если переменной RDHosts назначить только один адрес или имя компьютера, при щелчке по ссылке пользователь будет автоматически перенаправлен на указанный сервер.

 

 

Настройка диалогового окна выбора.

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

Порядок действий

  1. Скопируйте файл rdpselect.inc из каталога ...Microsoft Forefront Unified Access Gateway\von\InternalSite\inc\ в каталог ...Microsoft Forefront Unified Access Gateway\von\InternalSite\inc\CustomUpdate.

Замечание:

Если настройка выполняется для определенного канала связи (транка), имя файла должно выглядеть так: <trunk_name>1rdpselect.inc

  1. Внесите в файл rdpselect.inc необходимые изменения.

Учитывайте, что:

  1.  
  • Функция finalizeSelectRemoteDesktop необходима для возвращения текущего выбранного IP-адреса или имени компьютера на портал.
  • Функция parent.onSubmitSelection  может использоваться для сообщения на портал о выбранном пользователем сервере.
  • Функция parent.onCancelSelection может использоваться для сообщения на портал о том, что пользователь отменил выбор сервера.
  • Настроить размер диалогового окна можно одним из следующих способов:
    1.  
    • Назначив размер окна переменной uagselargs в файле ...Microsoft Forefront Unified Access Gateway\von\InternalSite\inc\CustomUpdate\rdpdata.inc .

    uagselargs="340;70"

    1.  
    • Назначив размер окна переменной RDHostDialogProperties в файле ...Microsoft Forefront Unified Access Gateway\von\InternalSite\inc\CustomUpdate\Login.inc file.

    RDHostDialogProperties="340;70"

     

     

    Настройка RDP-параметров RemoteApp

    При публикации RemoteApps через Forefront Unified Access Gateway (UAG), параметры Remote Desktop Protocol (RDP) импортируются из файла  .tspub. После того, как приложение опубликовано, параметры сохраняются в конфигурации Forefront UAG и могут быть изменены позднее.

    Порядок действий:

    1. В консоли управления Forefront UAG, секция Applications, выберите приложение RemoteApp и нажмите Edit.
    2. В диалоговом окне Application Properties перейдите на вкладку Publishing Type  и щелкните Edit Imported Settings.

    Откроется диалоговое окно RemoteApp Program List and Settings с настройками RemoteApp.

    1. Внесите необходимые изменения в файл настроек RemoteApp  и нажмите OK.

    Замечание:

    Синтаксис измененного файла проверяется, однако проверка правильности самих настроек RDP не выполняется.

     

    1. Чтобы загрузить новый файл настроек, нажмите Load, и выберите нужный файл.
    Comments (1)

    1. pJ:

      "необходимо было устанавливать .оконечный компонент Socket Forwarding"

      Что-что-что?!

      Батенька, а вы точно инженер, а не, скажем, дворник?

      Ставим на роутере, ну, например, 3proxy — и ничего на клиентах ковырять не нужно.

      А то, что "родной" мс-овский софт не умеет делать толковую переадресацию TCP — это уже МС половые трудности.

    Skip to main content