Единая регистрация (SSO) позволяет аутентифицированному (подписанному) пользователю получать доступ к другим службам домена без повторной аутентификации (повторного ввода пароля) и без использования сохраненных учетных данных (включая RDP). SSO можно использовать при подключении к Службы удаленных рабочих столов (терминальных) серверов. Это не позволяет пользователю, вошедшему в систему на компьютере в домене, многократно вводить имя учетной записи и пароль в окне клиента RDP при подключении к различным узлам RDS или запуске опубликованных приложений RemoteApp.

В этой статье показано, как настроить прозрачный SSO (Single Sign-On) для пользователей RDS-серверов под управлением Windows Server 2022/2019/2016.

Системные требования:

  • Сервер Connection Broker и все узлы RDS должны работать под управлением Windows Server 2012 или новее;
  • В качестве клиентских рабочих станций можно использовать Windows 11,10,8.1 с редакциями Pro/Enterprise.
  • SSO работает только в доменной среде: Должны использоваться учетные записи пользователей Active Directory, серверы RDS и рабочие станции пользователей должны быть подключены к одному домену AD;
  • На RDP-клиентах должен использоваться RDP 8.0 или более поздней версии;
  • SSO работает только с парольной аутентификацией (смарт-карты не поддерживаются);
  • Уровень безопасности RDP в настройках подключения должен быть установлен на Negotiate или SSL (TLS 1.0), а также режим шифрования Высокий или Соответствие требованиям FIPS.

Процесс настройки единой регистрации состоит из следующих шагов:

  • Необходимо выпустить и назначить SSL-сертификат на серверах RD Gateway, RD Web и RD Connection Broker;
  • На сервере RDWeb должен быть включен Web SSO;
  • Настройте групповую политику делегирования учетных данных;
  • Добавьте эскиз сертификата RDS в доверенные издатели .rdp с помощью GPO.

Включение аутентификации SSO на хосте RDS с Windows Server 2022/2019/2016

Сначала нужно выпустить и назначить SSL-сертификат для установки RDS. Расширенное использование ключа (EKU) сертификата должно содержать Аутентификация сервера идентификатор. Процедура получения SSL-сертификата для развертывания RDS не рассматривается. Это выходит за рамки данной статьи (вы можете самостоятельно сгенерировать самоподписанный SSL-сертификат, но вам придется установить его в качестве доверенного сертификата на всех клиентах с помощью групповой политики).

Подробнее об использовании сертификатов SST/TLS для защиты RDP-соединений.

Сертификат назначается в Сертификаты раздел Развертывание RDS свойства.

Сертификаты RDSСертификаты RDS

Затем на всех серверах с ролью RD Web Access включите Аутентификация Windows для каталога IIS RDWeb и отключите Анонимная аутентификация.

Аутентификация IIS WindowsАутентификация IIS Windows

После сохранения изменений перезапустите IIS:

iisreset /noforce

Если используется шлюз удаленных рабочих столов, убедитесь, что он не используется для подключения внутренних клиентов (параметр Обход сервера RD Gateway для получения локального адреса опция должна быть отмечена).

Развертывание шлюза RDРазвертывание шлюза RD

Теперь вам нужно получить отпечаток SSL сертификата брокера подключений RD и добавить его в список доверенных издателей RDP. Для этого выполните следующую команду PowerShell на хосте RDS Connection Broker:

Get-Childitem CERT:\LocalMachine\My

Get-Childitem CERT:\LocalMachine\MyGet-Childitem CERT:\LocalMachine\My

Скопируйте значение отпечатка сертификата и добавьте его в поле Укажите миниатюрные отпечатки SHA1 сертификатов, представляющих издателей RDP политики (Computer Configuration -> Administrative Templates -> Windows Desktop Services -> Remote Desktop Connection Client).

Укажите SHA1 отпечатки сертификатов, представляющих издателей RDP Укажите отпечатки SHA1 сертификатов, представляющих издателей RDP

Настройка единого входа в удаленный рабочий стол на клиентах Windows

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

  1. Откройте консоль управления групповой политикой домена (gpmc.msc);
  2. Создайте новый GPO домена и привяжите его к OU с пользователями (компьютерами), которым нужно разрешить использовать SSO для доступа к серверу RDS;
  3. Включите политику Разрешить делегирование учетных данных по умолчанию по ссылке Конфигурация компьютера -> Административные шаблоны -> Система -> Делегирование учетных данных
  4. Добавьте имена узлов RDS, на которые клиент может автоматически отправлять учетные данные пользователей для выполнения SSO-аутентификации. Используйте следующий формат для хостов RDS: TERMSRV/rd.contoso.com (все символы TERMSRV должны быть в верхнем регистре). Если вам нужно разрешить отправку учетных данных на все терминалы в домене (менее безопасно), вы можете использовать эту конструкцию: TERMSRV/*.contoso.com .TERMSRV/rd.contoso.comTERMSRV/rd.contoso.com
Приведенная выше политика будет работать, если вы используете аутентификацию Kerberos. Если протокол аутентификации NTLM не отключен в домене, необходимо настроить параметр Разрешить делегирование учетных данных по умолчанию с аутентификацией только на сервере NTLM аналогичным образом.

Затем, чтобы предотвратить появление окна с предупреждением о том, что издатель удаленного приложения является недоверенным, добавьте адрес сервера, на котором запущена роль RD Connection Broker, в доверенную зону на клиентских компьютерах с помощью политики «Список назначений сайтов в зону» (аналогично статье Как отключить предупреждение безопасности Open File в Windows 10):

  1. Перейдите в раздел GPO Конфигурация пользователя/компьютера -> Средства администрирования -> Компоненты Windows -> Internet Explorer -> Панель управления Интернетом -> Страница безопасности.
  2. Включить политику Список назначений сайтов в зоны
  3. Укажите FQDN имени хоста RD Connection Broker и установите Zone 2 (Проверенные сайты).

Назначение сайта на зону : доверенная зонаНазначение сайта на зону : доверенная зона

Далее необходимо включить Параметры входа в систему политика в разделе Конфигурация пользователя/компьютера -> Административные инструменты -> Компоненты Windows -> Internet Explorer -> Панель управления Интернетом -> Безопасность -> Зона доверенных сайтов. Выберите ‘Автоматический вход в систему с текущим именем пользователя и паролем‘ из выпадающего списка.

Затем перейдите в раздел Конфигурация компьютера -> Политика -> Административные шаблоны ->Компоненты Windows ->Службы удаленных рабочих столов ->Клиент подключения к удаленному рабочему столу и отключите политику Запрос учетных данных на клиентском компьютере.

GPO: не запрашивать учетные данные на клиентском компьютереGPO: не запрашивать учетные данные на клиентском компьютере

После обновления параметров групповой политики на клиенте откройте клиент mstsc.exe (Remote Desktop Connection) и укажите FQDN хоста RDS. В поле UserName автоматически отобразится ваше имя в формате [email protected]:

Your Windows logon credentials will be used to connect.

Теперь при запуске RemoteApp или прямом подключении к узлу Remote Desktop Services пароль запрашиваться не будет.

Для подключения будут использоваться ваши учетные данные для входа в Windows.Для подключения будут использованы ваши учетные данные для входа в систему Windows.

Чтобы использовать шлюз RD с SSO, включите политику Установите метод аутентификации шлюза RD Конфигурация пользователя -> Политики -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Шлюз RD) и установите его значение в Использовать учетные данные при локальном входе в систему.

Active X компонент Microsoft Remote Desktop Services Web Access Control (MsRdpClientShell)Active X компонент Microsoft Remote Desktop Services Web Access Control (MsRdpClientShell)

Для использования Web SSO на RD Web Access рекомендуется использовать Internet Explorer с включенным Active X компонентом Microsoft Remote Desktop Services Web Access Control (MsRdpClientShell, MsRdpWebAccess.dll).

В современных версиях Windows Internet Explorer по умолчанию отключен, и вам придется использовать Microsoft Edge вместо этого. Чтобы использовать RD Web с SSO, необходимо открыть этот URL-адрес в Microsoft Edge в режиме совместимости (Edge не запускает компоненты Active-X без режима совместимости).

Чтобы все клиентские компьютеры могли открывать RDWeb в режиме совместимости, необходимо установить MS Edge Administrative Templates GPO и настроить параметры политики в разделе Computer Configuration -> Administrative Templates -> Microsoft:

  • Настройка интеграции Internet Explorer = Режим Internet Explorer;
  • Настройка списка сайтов режима предприятия — Укажите UNC-путь к файлу SiteList.xml, содержащему список доверенных сайтов.
    Узнайте, как настроить режим совместимости с Internet Explorer (IE) в Microsoft Edge.

Возможные ошибки:

  • В нашем случае RDP SSO перестал работать на ферме RDS с профилями User Profile Disks после установки обновлений безопасности KB5018410 (Windows 10) или KB5018418 (Windows 11) осенью 2022 года. Чтобы решить проблему, отредактируйте файл подключения *.rdp и измените следующую строку:
    use redirection server name:i:1

    set use redirection server name in rdp connection fileset use redirection server name in rdp connection file

  • Если вы не добавили отпечаток SSL сертификата RDCB в список доверенных издателей RDP, при попытке подключения появится предупреждение:
    Do you trust the publisher of this RemoteApp program?

    Доверяете ли вы издателю этой программы RemoteApp?Доверяете ли вы издателю этой программы RemoteApp

  • An authentication error has occured (Code: 0x607)

    Проверьте, что вы назначили правильный сертификат для ролей RDS.

    Произошла ошибка аутентификации (код: 0x607).Произошла ошибка аутентификации (Код: 0x607).