RDS: прозрачная аутентификация SSO (Single Sign-On) в Windows Server

Single Sign-On ( SSO — технология единого входа) это технология, которая позволяет уже аутентифицированному (вошедшему в систему) пользователю получать доступ к другим сервисам без повторной аутентификации (без повторного ввода пароля) и не используя сохранные пароли для RDP . SSO можно использовать при подключения к терминальным серверам Remote Desktop Services . Это позволит избавить пользователя, выполнившего вход на доменном компьютере, от многократного ввода имени и пароля своей учетной записи в окне RDP клиента при подключении к RDS серверам или запуске опубликованных приложений RemoteApp.

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

Требования к окружению:

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

Процедура настройки Single Sign-On состоит из следующих этапов:

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

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

В первую очередь вам нужно выпустить и назначить SSL сертификат для вашего развертывания RDS . В EKU (Enhanced Key Usage) сертификата должно обязательно присутствовать идентификатор Server Authentication . Мы опускаем процедуру получения сертификата, т.к. это она выходит за рамки статьи (можно сгенерировать самоподписанный SSL сертификат , но его придется добавлять в доверенные на всех клиентах через GPO ).

SSL сертификат привязывается в свойствах RDS Deployment в подразделе Certificates .

Далее на всех серверах c ролью RD Web Access нужно включать “ Windows Authentication ” и отключить анонимную проверку подлинности ( Anonymous Authentication ) для каталога IIS RDWeb.

После сохранения изменений, IIS нужно перезапустить: iisreset /noforce

Если используется шлюз Remote Desktop Gateway , убедитесь, что он не используется для подключения внутренних клиентов (должна стоять галка Bypass RD Gateway server for local address ).

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

Get-Childitem CERT:LocalMachineMy

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

Настройка Single Sign-on на клиентах Windows

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

  1. Откройте консоль управления доменными политиками Group Policy Management Console ( gpmc.msc );
  2. Создайте новую доменную GPO и привяжите ее к OU с пользователями (компьютерами), которым нужно разрешить использовать SSO для доступа к RDS сервера;
  3. Включите политику Allow delegation defaults credential в раздел GPO Computer Configuration -> Administrative Templates -> System -> Credential Delegation (Конфигурация компьютера -> Административные шаблоны -> Передача учетных данных -> Разрешить передачу учетных данных, установленных по-умолчанию). Политика разрешает передавать учетные данные пользователя определенным серверам;
  4. В список серверов нужно добавить имена RDS хостов, на которые клиенту разрешено автоматически отправлять учетные данные пользователя для выполнения SSO аутентификации. Формат добавления сервера: TERMSRV/rd.contoso.com (обратите внимание, что все символы TERMSRV должны быть в верхнем регистре). Если нужно предоставить такое право всем терминальным системам домена (менее безопасно), можно воспользоваться такой конструкцией: TERMSRV/*.contoso.com .
Рассмотренная выше политика работает при использовании Kerberos аутентификации. Если в домене не отключен протокол аутентификации NTLM , нужно по аналогии включить и настроить политику Allow delegation default credentials with NTLM-only server authentication .

Чтобы избежать появления окна с предупреждением о надежности издателя удаленного приложения, нужно добавить адрес сервера с ролью RD Connection Broker в доверенную зону с помощью параметра GPO «Список назначений зоны безопасности для веб-сайтов» (по аналогии со статьей Как убрать предупреждение системы безопасности при открытии файла в Windows ).

  1. Перейдите в раздел User/Computer Configuration -> Administrative Tools -> Windows Components -> Internet Explorer -> Internet Control Panel -> Security Page-> Site to Zone assignment list (Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Internet Explorer -> Панель управления браузером -> Вкладка безопасность )
  2. Включите политку Site to Zone assignment list;
  3. Укажите FQDN имя сервера RD Connection Brtoker и зону 2 (Trusted sites).

Далее нужно включить политику Logon options (Параметры входа) в разделе User/Computer Configuration -> Administrative Tools -> Windows Components -> Internet Explorer -> Internet Control Panel -> Security -> Trusted Sites Zone (Административные шаблоны -> Компоненты Windows -> Internet Explorer -> Панель управления браузером -> Вкладка безопасность -> Зона надежных сайтов) и в выпадающем списке выбрать ‘ Automatic logon with current username and password ‘ (Автоматический вход в сеть с текущим именем пользователя и паролем).

Затем перейдите в раздел Computer Configuration -> Policies -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Connection Client и отключите политику Prompt for credentials on the client computer .

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

Your Windows logon credentials will be used to connect.

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

Чтобы использовать шлюз RD Gateway с SSO, нужно для пользователей включить политику Set RD Gateway Authentication Method (User Configuration -> Policies -> Administrative Templates -> Windows Components -> Remote Desktop Services -> RD Gateway) и установить ее значение на Use Locally Logged-On Credentials.

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

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

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

  • Configure Internet Explorer Integrations = Internet Explorer Mode;
  • Configure the Enterprise Mode Site List – укажите UNC путь к файлу со списком сайтов SiteList.xml

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

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

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

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


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

admin

Share
Published by
admin

Recent Posts

Apple: история логотипа

Как менялся логотип Apple на протяжении многих лет. Логотип Apple — это не просто символ,…

7 дней ago

Security Boot Fail при загрузке Acer — решение проблемы

Security Boot Fail при загрузке Acer — решение проблемы При загрузке ноутбука Acer с флешки,…

3 недели ago

Ноутбук не включается — варианты решения

Ноутбук не включается — варианты решения Если при попытке включить ноутбук вы обнаруживаете, что он…

3 недели ago

The AC power adapter wattage and type cannot be determined — причины и решение

The AC power adapter wattage and type cannot be determined — причины и решение При…

3 недели ago

Свистит или звенит блок питания компьютера — причины и решения

Свистит или звенит блок питания компьютера — причины и решения Некоторые владельцы ПК могут обратить…

3 недели ago

Мигает Caps Lock на ноутбуке HP — почему и что делать?

Мигает Caps Lock на ноутбуке HP — почему и что делать? При включении ноутбука HP…

3 недели ago