В этой статье мы покажем, как удаленные пользователи самостоятельно могут менять свои истекшие пароли через с помощью специальной веб формы на сервере Remote Desktop Services (RDS) с ролью RD Web Access на Windows Server 2022/2019/2016/2012 R2.
В 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.
Получается, что при использовании 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 формы.
Функционал удаленной смены пароля доступен на сервере с ролью 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"}
Для смены пароля используется сценарий в файле password.aspx , который находится в каталоге C:WindowsWebRDWebPagesen-US .
Чтобы включить функцию смены пароля, нужно на сервере RD Web Access запустите консоль управления веб-сервером IIS Manager (inetmgr), перейдите в раздел [Server Name] –> Sites –> Default Web Site –> RDWeb –> Pages и откройте настройки приложения ( Application Settings ).
В правой панели найдите параметр с именем PasswordChangeEnabled и измените его значение на true .
Параметр PasswordChangeEnabled позволяет пользователям Active Directory сменить пароль через портал RD Web Access. Эта опция не позволяет сменить пароль локальных пользователей на RDS хостах в рабочей группе (без домена) .
Перезапустите веб сервер IIS из консоли или с помощью команды:
IISRESET
Чтобы проверить доступность страницы смены, перейдите на веб-адрес:
https://[RD-WEB-1]/RDWeb/Pages/en-US/password.aspx
Укажите имя пользователя, старый пароль и дважды новый.
После успешной смены пароля пользователя должно появится сообщение:
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.
Вывести и изменить поддерживаемые типы аутентификации можно в консоли IIS Manager. Выберите Sites -> Default Web Sites -> RDWeb -> Pages в правом окне выберите Forms Authentication.
Теперь при попытке подключиться к веб серверу RD Web Access с истекшим паролем, пользователь будет перенаправлен на веб-страницу password.aspx, на которой ему будет предложено сменить пароль.
Вы можете добавить ссылку на страницу с формой смены пароля можно непосредственно в веб-форму входа на сервер RDWeb. Благодаря этому пользователь в любой момент может самостоятельно изменить свой пароль, не дожидаясь окончания его срока действия.
Добавьте ссылку на файл password.aspx на страницу входа в систему (создайте копию файла login.aspx перед редактированием) .
<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 -->
Теперь удаленные пользователи смогут самостоятельно менять истекший пароль RDS сервере без вмешательства администратора. Обратите внимание, что если вы используете закэшированные учетные данные (Cached Credentials) для входа на локальный компьютер , то после смены пароля через RDWeb они не будут обновлены.
Как менялся логотип Apple на протяжении многих лет. Логотип Apple — это не просто символ,…
Security Boot Fail при загрузке Acer — решение проблемы При загрузке ноутбука Acer с флешки,…
Ноутбук не включается — варианты решения Если при попытке включить ноутбук вы обнаруживаете, что он…
The AC power adapter wattage and type cannot be determined — причины и решение При…
Свистит или звенит блок питания компьютера — причины и решения Некоторые владельцы ПК могут обратить…
Мигает Caps Lock на ноутбуке HP — почему и что делать? При включении ноутбука HP…