Прозрачная авторизация на RDS с помощью SSO (Single Sign-On)
Single Sign-On (SSO — технология единого входа) это технология, позволяющая уже аутентифицированному (вошедшему в систему) пользователю получать доступ к другим сервисам без повторной аутентификации. Применительно к технологии терминальных серверов Remote Desktop Services, SSO позволяет избавить пользователя, выполнившего вход на доменном компьютере, от многократного ввода имени и пароля своей учетной записи в окне RDP клиента при подключении к RDS серверам или запуске опубликованных приложений RemoteApp.
В этой статье мы опишем особенности настройки прозрачной авторизации (Single Sign-On) пользователей на серверах RDS под управлением Windows Server 2016 и 2012 R2.
Требования к окружению:
- Сервер Connection Broker и все RDS сервера должны работать под управлением Windows Server 2012 или выше;
- SSO работает только в доменном окружении: должны использоваться учетные записи пользователей Active Directory, а RDS сервера и рабочие станции пользователей должны быть включены в домен;
- На RDP клиентах должна использоваться версия клиента RDP 8.0 и выше (не получится установить эту версию RDP клиента в Windows XP);
- На стороне клиента поддерживаются следующие версии Windows 10 / 8.1 / 7;
- 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;
- Настроить групповую политику делегирования учетных данных;
- Через GPO добавить отпечаток сертификата в доверенные издатели .rdp.
Итак, в первую очередь нужно выпустить и назначить SSL сертификат. В EKU (Enhanced Key Usage) сертификата должно обязательно присутствовать идентификатор Server Authentication. Мы опускаем процедуру получения сертификата, т.к. это она выходит за рамки статьи (можно сгенерировать самоподписанный SSL сертификат, но его придется добавлять в доверенные на всех клиентах через GPO).
SSL сертификат привязывается в свойствах RDS Deployment в подразделе Certificates.
Далее на всех серверах c ролью Web Access для каталога IIS RDWeb нужно включать “Windows Authentication” и отключить анонимную проверку подлинности (Anonymous Authentication).
После сохранения изменений, IIS нужно перезапустить: iisreset /noforce
Если используется шлюз RD Gateway, убедитесь, что он не используется для подключения внутренних клиентов (должна стоять галка Bypass RD Gateway server for local address).
Следующий этап – настройка политики делегирования учетных данных. Создайте новую доменную GPO и привяжите ее к OU с пользователями (компьютерами), которым нужно разрешить SSO доступ на RDS сервера. Если вы хотите разрешить SSO для всех пользователей домена, допустимо редактировать Default Domain Policy.
Эта политика находится в разделе GPO Computer Configuration -> Administrative Templates -> System -> Credential Delegation -> Allow delegation defaults credential (Конфигурация компьютера -> Административные шаблоны -> Передача учетных данных -> Разрешить передачу учетных данных, установленных по-умолчанию). Политика разрешает определенным серверам доступ к учетным данным пользователей Windows.
- Включите политику (Enabled);
- В список серверов нужно добавить имена RDS серверов, на которые клиент может автоматически отправлять учетные данные пользователя для выполнения SSO авторизации. Формат добавления сервера: TERMSRV/rd.contoso.com. (обратите внимание, что все символы TERMSRV должны быть в верхнем регистре). Если нужно предоставить такое право всем терминальным системам домена (менее безопасно), можно воспользоваться такой конструкцией: TERMSRV/*.contoso.com .
Далее, чтобы избежать появления окна с предупреждением о надежности издателя удаленного приложения, нужно с помощью GPO на клиентских компьютерах добавить адрес сервера с ролью Connection Broker в доверенную зону с помощью политики «Список назначений зоны безопасности для веб-сайтов» (по аналогии со статьей Как убрать предупреждение системы безопасности при открытии файла в Windows):
User/Computer Configuration -> Administrative Tools -> Windows Components -> Internet Explorer -> Internet Control Panel -> Security Page-> Site to Zone assignment list (Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Internet Explorer -> Панель управления браузером -> Вкладка безопасность)
Укажите FQDN имя сервера RDCB и зону 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‘ (Автоматический вход в сеть с текущим именем пользователя и паролем).
После обновления политик на клиенте, при попытке запустить RemoteApp приложение, запрос пароля не появится, но появится окно с предупреждением о доверии к издателю данной программы RemoteApp:
Do you trust the publisher of this RemoteApp program?
Чтобы это сообщение не выводилось каждый раз при подключении пользователя, вам нужно получить отпечаток SSL сертификата (certificate thumbprint) RD Connection Broker и добавить его в список доверенных издателей rdp. Для этого на сервере RDS Connection Broker выполните команду PowerShell:
Скопируйте значение отпечатка сертификата и добавьте его в список отпечатков политики Specify SHA1 thumbprints of certificates representing RDP publishers (Указать отпечатки SHA1 сертификатов, представляющих доверенных издателей RDP) в секции Computer Configuration -> Administrative Templates -> Windows Components -> Windows Desktop Services -> Remote Desktop Connection Client (Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Клиент подключения к удаленному рабочему столу).
На этом настройка SSO закончена, и после применения политик, пользователь должен подключатся к ферме RDS по протоколу RDP без повторного ввода пароля.
Теперь при запуске клиента mstsc.exe (Remote Desktop Connection), если вы укажете имя RDS сервера, в поле UserName автоматически подставится имя пользователя в формате (user@domain.com).
Your Windows logon credentials will be used to connect.
Чтобы использовать 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.
Для использования Web SSO на RD Web Access, обратите внимание, что рекомендуется использовать Internet Explorer с включенным Active X компонентом MsRdpClientShell (Microsoft Remote Desktop Services Web Access Control).
Что нового в Windows Server 2016 RDS. Часть 1
Автор статьи — Роман Левченко (www.rlevchenko.com), MVP — Cloud and Datacenter Management
Выход Windows Server 2016 всё ближе и ближе, и мы продолжаем рассматривать самые главные нововведения очередного релиза. Речь сегодня пойдет об одной из наиболее востребованных ролей – службы удаленных рабочих столов или RDS (Remote Desktop Services).
Прежде чем погружаться в мир нового, рекомендую ознакомиться со списком тех возможностей, которые предоставляют Windows Server 2012/2012 R2. Если все в теме, то вернемся к главному и подробно рассмотрим непосредственно WS 2016 RDS.
Службы Multipoint
MultiPoint-сервер (MPS) является технологией и решением на базе Windows Server и служб RDS для предоставления базовой функциональности удаленных рабочих столов. Позиционируется для использования в учебных классах или учреждениях, где нет больших требований к нагрузке и масштабируемости. Особенность заключается в том, что пользовательские станции могут состоять только из монитора, клавиатуры и мыши («нулевые» клиенты) и подключаться непосредственно к серверу MPS через USB-хабы, видео-кабели или LAN (RDP-over-LAN, если клиентом является, к примеру, ноутбук или тонкий клиент). В итоге, конечный потребитель получает low-cost решение для предоставления функциональности рабочих столов с абсолютно минимальными затратами на пользовательские конечные станции.
Первая версия MPS, выпущенная в феврале 2010-го, имела возможность подключать станции только через специализированные USB-хабы и видео-порты.
Привычная нам всем возможность подключения через RDP была добавлена только в следующей версии MPS 2011, релиз которой состоялся в марте 2011. Помимо RDP-over-LAN, MPS 2011 обновился следующим образом:
- Поддержка RemoteFX
- Поддержка виртуализации
- Проецирование рабочего стола от одной станции другой (к примеру, рабочий стол тренера или преподавателя дублируется на пользовательские станции)
- Возможность ограничения Интернет-доступа на базе фильтров
- Удаленный запуск приложений, блокировка периферии (клавиатуры, мышь) на подключенных станциях
В следующей и, на данный момент, последней версии MPS 2012 были добавлены:
- Новая консоль для централизованного управления столами
- Защита системного раздела от нежелательных изменений
- Клиент MPS Connector для мониторинга и управления станций, включая планшеты
Лицензирование напоминает полноценный RDS. Всё так же требуется лицензировать каждую конечную станцию и иметь серверные лицензии MPS, которые отличаются редакциями:
Наименование редакции | Standard | Premium |
---|---|---|
Кол-во подключенных станций | До 10 | До 20 |
Виртуализация | Нет | Да |
Количество CPU (Sockets) | 1 | 2 |
Макс. память | 32 ГБ | Неограниченно |
Подключение к домену | Нет | Да |
Основные типы станций MultiPoint Services
Как уже было сказано выше, MPS поддерживает не только классический RDP, но и даёт возможность подключать «нулевые» клиенты (примером может служить Wyse 1000) следующими способами:
- Прямое подключение к видеокарте головной станции
На рисунке к главной станции подключаются напрямую 4 клиентские станции через USB и, к примеру, VGA-порты. Очевидно, что подобный тип подключения подразумевает соответствующие требования к аппаратной конфигурации головной станции и в некоторых сценариях не применим (масштабы, расстояние, мобильность)
Подключение через USB
На рисунке ниже показано взаимодействие первичной станции (станция, которая подключена напрямую к MPS и используется для первичной конфигурации вне зависимости от сценария) и двух «нулевых» клиентов, подключенных через USB-хабы (пример: Wise 1000). В отличии от первого способа, нам не нужно дополнительно рассчитывать конфигурацию видео-подсистемы сервера MPS для формирования требуемого количества видеовыходов. Но из-за ограничения по расстоянию между станциями и MPS (для Dell Wise 1000
5 метров) рекомендуется использовать в малых комнатах при небольшом количестве конечных пользователей.
Более масштабируемый тип подключения. Вместо USB-to-USB используется проброс USB через LAN, тем самым предоставляется возможность построения системы MPS в больших по размеру помещениях (пример клиента: Wise 1003)
А что же в Windows Server 2016?
Описанная выше функциональность полностью перенесена в Windows Server 2016 (на данный момент Technical Preview 4). MultiPoint Server является теперь новым типом развертывания служб RDS.
Данных по лицензированию подобной схемы развертывания в рамках 2016 пока нет. Подразумеваю, что схема лицензирования MPS 2012 будет частично перенесена и в WS 2016, а редакции MPS будут упразднены.
Процесс развертывания
Опытным инженерам или администраторам, которые уже знакомы с процедурой конфигурации RDS в рамках VDI или Session-Based решений, процесс настройки и использования MPS покажется более простым и быстрым. Это тоже является плюсом, если учитывать целевую аудиторию MPS.
Существует три способа установить MultiPoint Services: через Server Manager (role-based), Powershell и через RDS Installation.
Бегло пройдемся по первым двум и потом перейдем к процессу базовой настройки MPS.
- Используя Server Manager и установку ролей, выберите MultiPoint Services, согласитесь с установкой дополнительных компонент и перейдите к следующему шагу.
Можно почитать ещё раз, что такое MPS. Стоит отметить, что RD Licensing нужно будет активировать после конфигурации MPS.
Вместе с основной службой MPS дополнительно разворачиваются службы Print and Document Services, предназначение которых всем, я надеюсь, известно. Ничего интересного, идем далее.
Оставляем всё по умолчанию.
- Print Server – необходим для управления «множеством» принтеров
- Distributed Scan Server – управление и предоставление доступа к сканерам, поддерживающим Distributed Scan Management
- Internet Printing – веб-доступ к printer jobs с возможностью отправки документов на печать через Internet Printing Protocol
- LPD Service — служба Line Printer Daemon предоставляет возможность UNIX-клиентам, используя службу Line Printer Remote, отправлять задачи на печать доступным принтерам.
Полноценный RDS нам не нужен, поэтому оставляем предлагаемые по умолчанию значения.
После подтверждения сервер отправится на перезагрузку и, используя первичную станцию, необходимо будет произвести требуемую конфигурацию при первом старте MPS. В момент запуска будет предложено произвести идентификацию первичной станции (путем нажатия клавиши “B”), после чего сервер перейдет в режим конфигурации служб RDS/MPS.
MPS добавит учетную запись WmsShell для поддержки работы в multi-station режиме и создаст группу WmsOperators для формирования доступа к консоли управления (Dashboard).
Все 6 пунктов можно “сжать” до 1 команды в PowerShell:
Перейдем в диспетчер управления MPS (MPS Manager)
Со своей удаленной станции я хочу настроить доступ к MPS через RDP-over-LAN. Для этого добавим новую учетную запись пользователя MPS
С точки зрения MPS существует 3 вида пользователей: стандартный пользователь для доступа к MPS, пользователь для управления пользовательскими сессиями и администратор. По сути, это имитация полноценного RBAC (Role Based Access Control).
Итак, пользователь добавлен. Проверим подключение. Используя MSTSC и возможности RDP, я подключаюсь к серверу MPS с помощью выше обозначенной учетной записи. При первом подключении каждого пользователя к MPS будет выведено сообщение: «To assist you with your usage of this computer, your activities may be monitored by your system administrator / Для помощи в использовании данного компьютера ваши действия будут отслеживаться системным администратором».
После подтверждения будет создана новая терминальная сессия для пользователя, при этом администратор сможет управлять пользовательской сессией в интерактивном режиме, используя MPS Dashboard.
Перейдем к MPS Dashboard (отдельная консоль). Основную часть консоли будут занимать динамически меняющиеся мини-экраны пользовательских сессий. Мне это чем-то напоминает экран службы безопасности для мониторинга видеосигналов с камер, но MPS позволяет нам не только наблюдать за тем, что происходит в пользовательских сессиях, но и реально управлять и изменять их (забирать управление, блокировать станции или инициировать log off, отправлять IM выбранным пользователям, блокировать USB-устройства или удаленно запускать/закрывать приложения).
К примеру, с каждой пользовательской станцией и её сессией мы можем сделать следующее:
- разблокировать/заблокировать станцию и вывести на экран конкретной станции сообщение;
ограничить веб-доступ путем определения списка разрешенных или запрещенных URLs;
проецировать свой рабочий стол на клиентские станции;
Если вернуться обратно в MPS Manager, то можно увидеть, что подключенная станция отображается во вкладе Stations, где можно дополнительно управлять выбранными станциями.
Настройки самого MPS располагаются на стартовой вкладе Home. Мы можем, к примеру, отключить оповещения о том, что сессия не является приватной, чтобы у пользователей не возникало дополнительных вопросов 🙂
Multi-Session режим несет некоторые риски, связанные с безопасностью, поэтому предоставляется возможность защитить системный диск от нежелательных изменений. Для включения функции Disk Protection достаточно одно клика и подтверждения.
Если имеется приложение, которое требует клиентскую среду, в некоторых случаях изолированную, то в MPS это достигается за счет включения Virtual Desktops. Принцип работы схож с pooled-коллекцией в полноценном VDI. Каждая «виртуализированная станция» будет создаваться из шаблона и делать откат изменений после каждого выхода пользователя из системы. Как видим, полноценная функциональность VDI не достигается, но всё же само наличие подобной возможности расширяет область применения MPS.
Как корректно удалить службы MPS?
Удалите роль через Server Manager, перезапустите сервер и запустите скрипт.
Что насчет модуля PowerShell для MPS?
На данный момент отдельного модуля нет. На мой взгляд, обновится уже имеющийся модуль для RDS с целью поддержки управления MPS.
Выводы
Перемещение функциональности MultiPoint Server в Windows Server 2016 довольно интересное и полезное решение, которое должно оживить применяемость MPS именно в тех сценариях, в которых его рекомендуется использовать. Помимо стандартных учебных классов MPS может применяться так же и партнерами для обеспечения демо-стендов или шоу-румов, независимыми тренерами и другими профессионалами, целью которых является грамотно донести информацию до слушателей или заказчиков.