Смена истекшего пароля через Remote Desktop Web Access в Windows Server

В этой статье мы покажем, как удаленные пользователи самостоятельно могут менять свои истекшие пароли через с помощью специальной веб формы на сервере Remote Desktop Services (RDS) с ролью RD Web Access на Windows Server 2022/2019/2016/2012 R2.

Проблема смены истекшего пароля по RDP

В Windows Server 2012 R2 и выше по умолчанию включен механизм аутентификации на уровне сети NLA (Network Level Authentication, подробнее о нем здесь ). Особенность этого метода аутентификации в том, что при включенном NLA пользователи с истекшим сроком действия пароля (или у которых в атрибуте пользователя useraccountcontrol включена опция смены пароля при первом входе) не смогут подключиться к RDP/RDS хосту. Конечно, вы можете отключить NLA ссылка1 , ссылка2 , но это не хорошо с точки зрения безопасности. При попытке подключится к серверу RDSH (Remote Desktop Session Host) с учетной записью пользователя, пароль которого истек, появляется такое сообщение об ошибке:

An authentication error has occurred._x000D_The Local Security Authority cannot be contacted_x000D_Remote computer:xxxxxx_x000D_This could be due to an expired password_x000D_Please update your password if it has expired.

The Local Security Authority cannot be contacted - This could be due to an expired password

Получается, что при использовании NLA удаленные RDP пользователи не могут сменить свой истекший пароль, если у них нет других способов доступа в корпоративную сеть кроме RDS. Можно конечно, попросить пользователей заранее сменить свой пароль непосредственно в RDP сессии , или включить на RDS серверах политику Interactive logon: Prompt user to change password before expiration (Computer Configuration -> Windows Settings -> Local Policies -> Security Options), но, обычно это не всегда срабатывает из-за элементарной забывчивости пользователей.

В Windows Server 2012 R2 и выше удаленные пользователи могут самостоятельно сбросить свой пароль (текущий пароль или пароль с истекшим сроком действия) через специальную веб-страницу на сервере с ролью RD Web Access. Чтобы изменить пароль, пользователь должен аутентифицироваться под своей учетной записью на веб-странице регистрации RDS-WebAccess и с изменить свой пароль с помощью специальной aspx формы.

Примечание . В Windows Server 2003 пользователи домена могли сменить свой пароль через небольшое веб-приложение IISADMPWD (официально, впрочем, не поддерживаемое).

Разрешить смену истекшего пароля пользователя на RDWeb Access

Функционал удаленной смены пароля доступен на сервере с ролью Remote Desktop Web Access (RD Web Access), но по-умолчанию эта функция отключена.

Если у вас развернута ферма серверов RDS , вы можете найти сервер, на котором установлена роль RDS-WEB-Access, обратившись к RD Connection Broker :

Get-RDServer -ConnectionBroker srv-rdscb.remontka.com| where {$_.roles -eq "RDS-WEB-ACCESS"}

powershell get-rdserver найти сервер с ролью rd-webaccess

Для смены пароля используется сценарий в файле password.aspx , который находится в каталоге C:WindowsWebRDWebPagesen-US .

В локализованной версии Windows Server (без language pack ) путь к файлу password.aspx зависит от языка ОС. Например, для русской версии Windows Server это C:WindowsWebRDWebPagesru-RU.

Чтобы включить функцию смены пароля, нужно на сервере RD Web Access запустите консоль управления веб-сервером IIS Manager (inetmgr), перейдите в раздел [Server Name] –> Sites –> Default Web Site –> RDWeb –> Pages и откройте настройки приложения ( Application Settings ).

Sites –> Default Web Site –> RDWeb –> Pages

В правой панели найдите параметр с именем PasswordChangeEnabled и измените его значение на true .

PasswordChangeEnabled - опция смены пароля через веб страницу на Remote Desktop Web

Либо вы можете задать значение True для параметра PasswordChangeEnabled в конфиг файле ‘C:WindowsWebRDWebPagesWeb.config’.

rdweb-access файл конфигурации IIS web.config параметр passwordchangeenabled

Параметр PasswordChangeEnabled позволяет пользователям Active Directory сменить пароль через портал RD Web Access. Эта опция не позволяет сменить пароль локальных пользователей на RDS хостах в рабочей группе (без домена) .

Перезапустите веб сервер IIS из консоли или с помощью команды:
IISRESET

команда перезапуска веб сервера iisreset

Чтобы проверить доступность страницы смены, перейдите на веб-адрес:

https://[RD-WEB-1]/RDWeb/Pages/en-US/password.aspx

Для RD Web Access должен быть выпущен валидный SSL сертификат. Можно использовать бесплатный сертификат Let’s Encrypt для IIS .

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

Форма смены пароля пользователя на rd web access windows 2012

После успешной смены пароля пользователя должно появится сообщение:

Your password has been successfully changed.

rdweb сброс пароля пользователя Your password has been successfully changed

Нажмите ОК, и пользователь будет перенаправлена на страницу входа RD Web.

Если пароль пользователя не соответствует парольной политике домена , появится окно с предупреждением:

Your new password does not meet the length, complexity, or history requirements of your domain. Try choosing a different new password.

Your new password does not meet the length, complexity, or history requirements of your domain. Try choosing a different new password

Вы можете использовать этот способ смены пароля на Remote Desktop Web Access только если на RDWA сервере включена аутентификация Forms Authentication . При использовании метода Window Authentication , смена пароля через форму RD Web невозможна.

Вывести и изменить поддерживаемые типы аутентификации можно в консоли IIS Manager. Выберите Sites -> Default Web Sites -> RDWeb -> Pages в правом окне выберите Forms Authentication.

rdwebaccess включить form authentication

Теперь при попытке подключиться к веб серверу RD Web Access с истекшим паролем, пользователь будет перенаправлен на веб-страницу password.aspx, на которой ему будет предложено сменить пароль.

Необходимо изменить истекший пароль

Совет . Аналогичный функционал для смены пароля в Windows Server 2008 R2 с RD Web Access Role может быть доступен после установки отдельного патча KB2648402 .

Добавить ссылку на смену пароля на страницу входа Remote Desktop Web Access

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

Добавьте ссылку на файл password.aspx на страницу входа в систему (создайте копию файла login.aspx перед редактированием) .

  1. На сервере RDWeb найдите и откройте в любом тестовом редакторе (я предпочитаю Notepad++) файл C:WindowsWebRDWebPagesen-USlogin.aspx ;
  2. Перейдите на 429 строку (В Windows Server 2022 она находится после html блока <tr id="trPasswordExpiredNoChange" <%=strErrorMessageRowStyle%> > ……..… </tr> ) и добавьте следующий код:
    <!-- Start Add Link to Change Password -->
    <tr>
    <td align="right"> <a href="password.aspx" title="Change User Password">Click here </a>to change your password.
    </td>
    </tr>
    <!-- End Add Link to Change Password -->
    login.aspx добавить ссылку на смену пароля пользователя через rd web access
  3. Сохраните изменения в файле login.aspx, перезапустите сайт IIS и проверьте, что на странице регистрации RD Web появилась ссылка на страницу смены пароля. rd web access сменить пароль пользователя
Совет . Кстати говоря, мы ранее уже рассматривали, как реализовать смену пароля пользователя через OWA в Exchange .

Теперь удаленные пользователи смогут самостоятельно менять истекший пароль RDS сервере без вмешательства администратора. Обратите внимание, что если вы используете закэшированные учетные данные (Cached Credentials) для входа на локальный компьютер , то после смены пароля через RDWeb они не будут обновлены.

EnglishRussianUkrainian