- Remove From My Forums
-
Вопрос
-
I’m having trouble with this on Windows 2019.
I have thee services installed and the RDWeb/Pages/en-US/password.aspx page loads OK.
When i enter the credentials for a user and try to change the password, no matter the complexity I set for the new password, I get the following message:
«Your new password does not meet the length, complexity, or history requirements of your domain. Try choosing a different new password.»
I’ve disabled password complexity in the GPO to be sure that’s not impacting the issue, but the problem persists.
I have seen an error on the RDWeb server hosting this page, in the servers application error log, and am unsure what to do with it:
Event code: 3005
Event message: An unhandled exception has occurred.
Event time: 01/09/2019 18:02:51
Event time (UTC): 01/09/2019 17:02:51
Event ID: 9fd930d7635347de8ce161b010f23485
Event sequence: 26
Event occurrence: 2
Event detail code: 0Application information:
Application domain: /LM/W3SVC/1/ROOT/RDWeb/Pages-3-132118305533185037
Trust level: Full
Application Virtual Path: /RDWeb/Pages
Application Path: C:WindowsWebRDWebPages
Machine name: PWADMINProcess information:
Process ID: 5576
Process name: w3wp.exe
Account name: IIS APPPOOLRDWebAccessException information:
Exception type: HttpException
Exception message: Cannot redirect after HTTP headers have been sent.
at System.Web.HttpResponse.Redirect(String url, Boolean endResponse, Boolean permanent)
at Microsoft.TerminalServices.Publishing.Portal.FormAuthentication.TSFormsAuthentication.RedirectBackWithErrorValue(HttpContext objHttpContext, String strDestPage, String strErrorMessage)
at Microsoft.TerminalServices.Publishing.Portal.FormAuthentication.TSFormsAuthentication.<OnAuthenticateRequestAsync>d__71.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.TaskAsyncHelper.EndTask(IAsyncResult ar)
at System.Web.HttpApplication.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step)
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)Request information:
Request URL: https://<myserver address>:443/RDWeb/Pages/en-US/password.aspx
Request path: /RDWeb/Pages/en-US/password.aspx
User host address: 10.2.0.38
User:
Is authenticated: False
Authentication Type:
Thread account name: IIS APPPOOLRDWebAccessThread information:
Thread ID: 27
Thread account name: IIS APPPOOLRDWebAccess
Is impersonating: False
Stack trace: at System.Web.HttpResponse.Redirect(String url, Boolean endResponse, Boolean permanent)
at Microsoft.TerminalServices.Publishing.Portal.FormAuthentication.TSFormsAuthentication.RedirectBackWithErrorValue(HttpContext objHttpContext, String strDestPage, String strErrorMessage)
at Microsoft.TerminalServices.Publishing.Portal.FormAuthentication.TSFormsAuthentication.<OnAuthenticateRequestAsync>d__71.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.TaskAsyncHelper.EndTask(IAsyncResult ar)
at System.Web.HttpApplication.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step)
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)Can anyone assist?
-
Изменено
1 сентября 2019 г. 17:16
-
Изменено
В этой статье мы покажем, как удаленные пользователи самостоятельно могут менять свои истекшие пароли через с помощью специальной веб формы на сервере Remote Desktop Services (RDS) с ролью RD Web Access на Windows Server 2022/2019/2016/2012 R2.
Содержание:
- Проблема смены истекшего пароля по RDP
- Разрешить смену истекшего пароля пользователя на RDWeb Access
- Добавить ссылку на смену пароля на страницу входа Remote Desktop Web Access
Проблема смены истекшего пароля по 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. The Local Security Authority cannot be contacted Remote computer:xxxxxx This could be due to an expired password 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 формы.
Примечание. В 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.winitpro.ru| where {$_.roles -eq "RDS-WEB-ACCESS"}
Для смены пароля используется сценарий в файле 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).
В правой панели найдите параметр с именем PasswordChangeEnabled и измените его значение на true.
Либо вы можете задать значение True для параметра PasswordChangeEnabled в конфиг файле ‘C:WindowsWebRDWebPagesWeb.config’.
Параметр 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.
Вы можете использовать этот способ смены пароля на Remote Desktop Web Access только если на RDWA сервере включена аутентификация Forms Authentication. При использовании метода Window Authentication, смена пароля через форму RD Web невозможна.
Вывести и изменить поддерживаемые типы аутентификации можно в консоли IIS Manager. Выберите Sites -> Default Web Sites -> RDWeb -> Pages в правом окне выберите Forms Authentication.
Теперь при попытке подключиться к веб серверу RD Web Access с истекшим паролем, пользователь будет перенаправлен на веб-страницу password.aspx, на которой ему будет предложено сменить пароль.
Совет. Аналогичный функционал для смены пароля в Windows Server 2008 R2 с RD Web Access Role может быть доступен после установки отдельного патча KB2648402.
Добавить ссылку на смену пароля на страницу входа Remote Desktop Web Access
Вы можете добавить ссылку на страницу с формой смены пароля можно непосредственно в веб-форму входа на сервер RDWeb. Благодаря этому пользователь в любой момент может самостоятельно изменить свой пароль, не дожидаясь окончания его срока действия.
Добавьте ссылку на файл password.aspx на страницу входа в систему (создайте копию файла login.aspx перед редактированием).
- На сервере RDWeb найдите и откройте в любом тестовом редакторе (я предпочитаю Notepad++) файл C:WindowsWebRDWebPagesen-USlogin.aspx;
- Перейдите на 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, перезапустите сайт IIS и проверьте, что на странице регистрации RD Web появилась ссылка на страницу смены пароля.
Теперь удаленные пользователи смогут самостоятельно менять истекший пароль RDS сервере без вмешательства администратора. Обратите внимание, что если вы используете закэшированные учетные данные (Cached Credentials) для входа на локальный компьютер, то после смены пароля через RDWeb они не будут обновлены.
Одной из хороших привычек любого пользователя ПК, а тем более системного администратора, является периодическая смена паролей учетных записей. Главное потом его не забыть.
Как сменить пароль на удаленном рабочем столе:
- Как сменить пароль в ОС Windows Server 2008
- Как сменить пароль в OC Windows Server 2012 и Windows Server 2012 R2
- Как сменить пароль в ОС Windows Server 2016
- Как альтернативно сменить пароль в ОС Windows Server 2016
- Как сменить пароль на удаленном компьютере с помощью комбинации CTRL + ALT + END
- Как сменить пароль на удаленном компьютере с помощью экранной клавиатуры
- Как вызвать окно смены пароля в RDP сессии через VBS-скрипт или PowerShell
- Как сменить пароль с помощью ярлыка расширения оболочки Windows Explorer
- Как сменить пароль через Remote Desktop Web Access
- Как сменить пароль с помощью RDP при ошибке из-за CredSSP, NLA
- Как сменить пароль с помощью специального RDP-файла
В операционных системах семейства Microsoft Windows Server, для смены пароля, привычно использовать сочетание клавиш Ctrl + Alt + Del. проблема в том, что “три кнопки” нельзя использовать через “Подключение к удаленному рабочему столу”. Рассмотрим как все таки изменить пароль.
Смена пароля в ОС Windows Server 2008
В ОС Windows Server 2008 это можно сделать из меню Пуск, кликнув по “Безопасность Windows”.
На обновлённом экране выбираем экране выбираем “Сменить пароль”.
Вводим старый пароль и новый и его подтверждение.
Смена пароля в ОС Windows Server 2012 и Windows Server 2012 R2
В ОС Windows Server 2012 и Windows Server 2012 R2 несколько усложнилась задача.
Открываем блокнот и пишем две строки:
set objShell = CreateObject("shell.application")
objshell.WindowsSecurity
Сохраняем файл с расширением *.vbs (пишем вручную.). Для этого выбираем Файл -> Сохранить как …
В новом окне выбираем директорию для сохранения файла, например, Рабочий стол. В Тип файла выбираем Все файлы, а в Имя файла указываем произвольное имя, например, 1.vbs.
После сохранения файла, он уже готов к исполнению. Двойной клик левой кнопкой мыши вызовет экран, в которым следует выбрать “Сменить пароль”.
Далее все привычно.
Заполняем поля со старым паролем, указываем новый пароль и его подтверждение. Кликаем по иконке стрелки.
Смена пароля в ОС Windows Server 2016
ОС Windows Server 2016 радует своим расположением к пользователю, но чтобы изменить удаленно пароль, все равно нужно поискать этот пункт.
Открываем меню Пуск и кликаем по значку пользователя, в открывшемся меню выбираем “Изменить параметры учетной записи”.
В открывшемся окне “Параметры” выбираем “Параметры входа”, а в секции Пароль кликаем по кнопке Изменить.
В новом окне, указываем текущий пароль и кликаем по кнопке Далее.
Окно обновится и запросит новый пароль, его подтверждение, а также подсказку к паролю. Кликаем по кнопке далее. В итоге, кликаем по кнопке Готово. Следующий вход в систему будет происходить под новым паролем.
Альтернативный способ
Этот способ применим как для изменения пароля к своей учетной записи, так и к учетным записям других пользователей.
В меню Пуск, выбираем Администрирование (“Средства администрирования” в Windows Server 2016).
В новом окне двойным кликом мыши открываем “Управление компьютером”.
В левой части открывшегося окна раскрываем ветку “Локальные пользователи и группы” и открываем папку Пользователи. В основной части окна, кликаем правой кнопкой мыши по пользователю и в контекстном меню выбираем “Задать пароль…”.
Система выдаст предупреждение. Внимательно прочитав которое и осознав все риски кликаем по кнопке “Продолжить”. В противном случае — “Отмена”.
В новом окне указываем новый пароль и его подтверждение. По окончании кликаем по кнопке OK.
Как сменить пароль на удаленном компьютере с помощью комбинации CTRL + ALT + END.
Для получения комбинации CTRL + ALT + DEL на удаленном компьютере, нужно нажать CTRL + ALT + END.
Нажатие этой комбинации откроет нам диалоговое окно, в котором нам нужно будет выбрать «Изменить пароль»:
Для смены пароля нам нужно будет указать некоторые данные:
Смена пароля на удаленном рабочем столе с помощью экранной клавиатуры.
При удаленном подключении к рабочему столу, пароль можно сменить с помощью использования экранной клавиатуры.
Чтобы вызвать экранную клавиатуру введите в меню «Пуск» «Экранная клавиатура» или же «OSK».
После того, как появится экранная клавиатура, зажмите клавиши ALT + CTRL и с помощью мыши нажмите кнопку Del.
У вас вылезет диалоговое окно, в котором вам вам нужно будет выбрать «Сменить пароль»:
Для смены пароля нам нужно будет указать: имя пользователя, старый пароль и два раза повторить новый пароль.
Вызов окна смены пароля в RDP сессии через VBS-скрипт или PowerShell.
Чтобы вызвать окно смены пароля с помощью VBS-скрипта, создайте файл WindowsSecurity.vbs и введите туда данные строчки кода:
set objShell = CreateObject("shell.application")
objshell.WindowsSecurity
После чего, после двойного щелчка по данному VBS-скрипту, перед вами откроется диалоговое окно, в котором нам нужно будет выбрать «Сменить пароль»:
Для смены пароля нам нужно будет указать: имя пользователя, старый пароль и два раза повторить новый пароль.
Также чтобы открыть окно смены пароля с помощью PowerShell, откройте сам PowerShell с помощью меню «Пуск» и воспользуйтесь командой:
New-Object -COM Shell.Application).WindowsSecurity()
После чего, перед вами откроется диалоговое окно, в котором нам нужно будет выбрать «Сменить пароль»:
Для смены пароля нам нужно будет указать: имя пользователя, старый пароль и два раза повторить новый пароль.
Чтобы открыть диалоговое окно со сменой пароля, можно создать ярлык со ссылкой на расширение оболочки Windows Explorer.
Для начала создаем ярлык и указываем данный путь для него:
C:Windowsexplorer.exe shell:::{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}
Далее выбираем название для ярлыка и создаем его:
После двойного щелчка по данному ярлыка, перед вами откроется диалоговое окно, в котором нам нужно будет выбрать «Сменить пароль»:
Для смены пароля нам нужно будет указать: имя пользователя, старый пароль и два раза повторить новый пароль.
Cмена пароля через Remote Desktop Web Access
В Windows Server 2012 /R2 и выше у удаленных пользователей с правами Remote Desktop Web Access появилась возможность самостоятельно сбрасывать свой пароль через специальную веб-страницу на сервере Remote Desktop Web Access.
Функционал удаленной смены пароля доступен на сервере с ролью Remote Desktop Web Access, но по-умолчанию эта функция отключена.
Чтобы включить данную функцию:
Открываем консоль управления сервером IIS Manager и переходим в [Name of your Server] – Sites – Default Web Site – RDWeb – Pages и открываем раздел Application Settings.
В правой панели выбираем параметр с именем PasswordChangeEnabled и меняем его значение на true.
Чтобы проверить доступность страницы смены пароля, переходим по: https://[RD-WEB-1]/RDWeb/Pages/en-US/password.aspx
Важно! Если у вас русская версия Windows Server путь к файлу password.aspx будет отличаться и выглядеть так:
C:WindowsWebRDWebPagesru-RU.
После успешной смены пароля пользователя должно появится сообщение:
Your password has been successfully changed.
СredSSP, NLA и смена пароля через RDP
Credential Security Support Provider (CredSSP) — протокол для передачи учетных данных, который используется при RDP для защиты DDoS атак и несанкционированного исполнения процессов.
Network Level Authentication (NLA) — это функция служб удаленных рабочих стол, которая требует, чтобы подключающийся пользователь аутентифицировал себя до установления сеанса с сервером.
Есть одна важная особенность, касающаяся смены истекшего пароля пользователя по RDP, связанная с опцией Network Level Authentication (NLA) и протоколом Credential Security Support Provider (CredSSP). По умолчанию CredSSP с NLA для RDP включен во всех версиях Windows, начиная с Windows Server 2012/Windows 8. NLA обеспечивают защиту RDP сервера за счет выполнения аутентификации пользователя до установки RDP сеанса с сервером.
Если у пользователя истек пароль, или администратор AD пользователя включил ему опцию «userAccountControl» — Требовать смену пароля при первом входе в систему, то при входе в систему по RDP появится ошибка:
Remote Desktop Connection
You must change your password before logging on the first time. Please update your password or contact your system administrator or technical support.
или
Подключение к удаленному рабочему столу
Перед первым входом в систему необходимо сменить пароль. Обновите пароль либо обратитесь к вашему системному администратору или в службу технической поддержки.
Подключение к удаленному рабочему столу Перед первым входом в систему необходимо сменить пароль
Как результат — пользователь не сможет подключиться к RDP серверу и сменить пароль.
В этом случае, чтобы пользователь мог самостоятельно сменить пароль, можно:
1)Настроить Remote Desktop Web Acces (RDWA) со страницей смены пароля как в данной части инструкции : Смена пароля через Remote Desktop Web Access
2)Создать отдельный сервер для смены паролей пользователей. На данном сервере нужно отключить функцию NLA. В этом случае пользователи смогу сменить пароль.
3)Пользователь может изменить свой пароль удаленно через PowerShell — как показано в данной части инструкции Как вызвать окно смены пароля в RDP сессии через VBS-скрипт или PowerShell
Смена пароля на удаленном рабочем столе с помощью специального RDP-файла:
Если ситуация требует того, чтобы пользователь изменил пароль с помощью RDP-файла, то это потребует некоторого изменения уровня безопасности настроек протокола RDP на стороне RDP сервера и подготовки специального RDP-файла на стороне клиента.
Сначала на клиентской стороне откроем mstsc.exe.
В меню пуск вводим «mstsc» и выбираем «Подключение к удаленном рабочему столу»:
Далее настраиваем все нужные параметры для подключения к серверу.
Нажимаем «Показать больше», вводим туда IP-адресс нашего удаленного компьютера и имя пользователя, затем, используя кнопку Сохранить как, создаем RDP-файл:
После этого откроем RDP-файл с помощью текстового редактора и добавим в конце файла строку:
enablecredsspsupport:i:0
Пояснение: Добавление данного параметра в свойствах RDP-подключения позволит клиенту успешно установить RDP-сессию с удалённой системой и сменить пароль до получения доступа к удалённому рабочему столу. Однако этот параметр понизит уровень безопасности RDP-подключения, так как клиент не сможет использовать проверку подлинности на уровне сети — Network Level Authentication (NLA), которую мы описывали выше в нашей статье.
Если NLA включен — то пользователь не сможет подключиться и получит соответствующую ошибку:
Исправить эту ошибку можно только понизив уровень безопасности RDP на стороне RDS сервера, отключив обязательное требование проверки подлинности на уровне сети (NLA).
Важно!
Не рекомендуем делать этого, если ваш удаленный компьютер может быть подвергнут DDoS-атакам и несанкционированным процессам.
Чтобы изменить эту настройку, на удаленном компьютере, в меню пуск вводим «Панель управления»:
Затем переходим в «Система и безопасность»:
Затем переходим в «Система»:
Открываем окно, которое появилось, на весь экран и выбираем «Дополнительные параметры системы»: «Разрешить подключения только с…» :
У нас появится окно с «Свойствами системы», перейдем в часть с «Удаленным доступом» и уберем галочку с пункта «Разрешить подключения только с…», затем нажмем «Применить» и «ОК»:
После того, как мы отключили функцию NLA на стороне RDS сервера, клиент с помощью специального RDP-файла, может успешно установить RDP-сессию и уже в ней сменить пароль:
После этого вы сможете подключаться с новым паролем.
Таким образом, мы рассмотрели все возможные способы смены пароля учетной записи по RDP.
Настройка доступа в Remote Desktop Web Access (RDWeb) с помощью Indeed IIS Extension (однофакторная аутентификация и 2FA) Автор Anton Shlykov, Last modified by Vladislav Fomichev на 04 марта 2022 01:52 PM |
В данной статье мы рассмотрим, как настроить однофакторную или двухфакторную (2FA) аутентификацию при доступе в Remote Desktop Web Access (RDWeb) с помощью технологии аутентификации Indeed-Id. Использовать для этого мы будем модуль Indeed IIS Extension. Что нам понадобится:
Набор необходимых провайдеров Indeed-Id выбирается в зависимости от поставленной задачи. Модуль Indeed IIS Extension позволяет настроить два варианта аутентификации при доступе в web-приложение Remote Desktop Web Access (RDWeb), опубликованное на сервере IIS: 1. Однофакторная аутентифкация — вместо доменного пароля в форме входа в приложение пользователь вводит свой аутентификатор в системе Indeed-Id. Данная схема работает с провайдерами Passcode и GoogleOTP (без пин). 2. Двухфакторная аутентификация (2FA) — пользователь аутентифицируется по доменному паролю, а в качестве второго фактора аутентификации в специальном окне вводит свой аутентификатор в системе Indeed-Id. Данная схема работает с провайдерами Passcode, GoogleOTP (без пин), SMS OTP (без пин), EMail OTP. Настройка однофакторной аутентификации1. Выполнить установку Indeed.EA.IIS.Extension.x64.msi на сервере RDWeb Access 2. Включить установленный модуль для приложения RDWeb. Для этого: — Откройте в Диспетчере служб IIS (IIS Manager) приложение RDWeb и перейдите в раздел Модули — В меню Действия (Actions) нажмите Выполняется настройка собственных модулей. . . (Configure Native Modules. . . ), включите модули Indeed и нажмите ОК. — Перезапустите сервер IIS в Диспетчере служб IIS (IIS Manager). 3. Задаем необходимые настройки в реестре. Для этого: — Откройте редактор реестра Windows. — Создайте в разделе реестра Windows HKEY_LOCAL_MACHINESOFTWARE ключ Indeed-ID с вложенным ключом IISHTTPModule. — Задайте тип аутентификаторов, с которым будет работать система (при вводе пользователя строки со значением аутентификатора модуль будет работать с ним в соответствии с указанным типом). В созданном ключе IISHTTPModule создайте строковый параметр ProviderId и задайте для него значение, соответствующее используемому провайдеру:
Настройка для Passcode Настройка для GoogleOTP Таким образом мы указали, что Indeed IIS Extension будет обрабатывать все полученные аутентификаторы для всех web-приложений в соответствии указанным типом. Если необходимо настроить определенный тип аутентификатора для каждого приложения отдельно, существует более гибкая настройка. Ее мы рассмотрим в отдельной статье. — Создайте в разделе реестра Windows HKEY_LOCAL_MACHINESOFTWAREIndeed-IDIISHTTPModule ключ с именем приложения в IIS (может иметь произвольное значение). — В созданном ключе создайте следующие строковые параметры и определите их значения: Параметр: LoginURL Значение: /RDWeb/Pages/en-US/login.aspx (для русскоязычной версии необходимо задать /RDWeb/Pages/ru-RU/login.aspx) Настройка для англоязычной версии Настройка для русскоязычной версии 4. Теперь при входе в RDWeb Access пользователи смогут использовать не только доменный пароль, но и обученный аутентификатор Indeed-Id (Passcode или GoogleOTP в зависимости от настройки) вместо доменного пароля. 1. Выполнить установку Indeed.EA.IIS.Extension.x64.msi на сервере RDWeb Access 2. Включить установленный модуль для приложения RDWeb. Для этого: — Откройте в Диспетчере служб IIS (IIS Manager) приложение RDWeb и перейдите в раздел Модули — В меню Действия (Actions) нажмите Выполняется настройка собственных модулей. . . (Configure Native Modules. . . ), включите модули Indeed и нажмите ОК. — Перезапустите сервер IIS в Диспетчере служб IIS (IIS Manager). 3. Задаем необходимые настройки в реестре. Для этого: — Откройте редактор реестра Windows. — Создайте в разделе реестра Windows HKEY_LOCAL_MACHINESOFTWARE ключ Indeed-ID с вложенным ключом IISHTTPModule. — Задайте тип аутентификаторов, с которым будет работать система (при вводе пользователя строки со значением аутентификатора модуль будет работать с ним в соответствии с указанным типом). В созданном ключе IISHTTPModule создайте строковый параметр ProviderId и задайте для него значение, соответствующее используемому провайдеру:
Настройка для Passcode Настройка для GoogleOTP — В случае использования в качестве второго фактора Email OTP Provider возможно задать имя атрибута Active Directory в профиле пользователя, из которого система будет получать адрес электронной почты пользователя для отправки одноразового пароля. По умолчанию используется атрибут mail. В случае необходимости задать атрибут, отличный от mail , следует в разделе HKEY_LOCAL_MACHINESOFTWAREIndeed—IDIISHTTPModule создать строковый параметр EmailAttribute и указать в качестве его значения имя атрибута, в котором хранится адрес электронной почты пользователя. Настройка для Email OTP, когда адрес почты получается из атрибута mail (по умолчанию): Настройка для Email OTP, когда адрес почты получается из атрибута otherMailbox: — В случае использования в качестве второго фактора SMS OTP Provider возможно задать имя атрибута Active Directory в профиле пользователя, из которого система будет получать номер телефона пользователя для отправки одноразового пароля. По умолчанию используется атрибут telephoneNumber. В случае необходимости задать атрибут, отличный от telephoneNumber , следует в разделе HKEY_LOCAL_MACHINESOFTWAREIndeed—IDIISHTTPModule создать строковый параметр PhoneAttribute и указать в качестве его значения имя атрибута, в котором хранится номер телефона пользователя. Настройка для SMS OTP, когда номер телефона получается из атрибута telephoneNumber (по умолчанию): Настройка для SMS OTP, когда номер телефона получается из атрибута mobile: — Создайте в разделе реестра Windows HKEY_LOCAL_MACHINESOFTWAREIndeed-IDIISHTTPModule ключ с именем приложения в IIS (может иметь произвольное значение). — В созданном ключе создайте следующие строковые и один DWORD параметры и определите их значения: Параметр: LoginURL Значение: /RDWeb/Pages/en-US/login.aspx (для русскоязычной версии необходимо задать /RDWeb/Pages/ru-RU/login.aspx) Настройка для англоязычной версии Настройка для русскоязычной версии 4. Теперь после удачной аутентификации в RDWeb Access по доменным логину и паролю у пользователя будет запрашиваться второй фактор в виде аутентификатора Indeed-Id, тип которого задан на этапе настройки модуля. |
(4 голос(а)) Эта статья полезна Эта статья бесполезна |
В этой статье мы покажем, как удаленные пользователи могут независимо изменять свои пароли с истекшим сроком действия через подключение RDP к ферме серверов терминалов служб удаленных рабочих столов (RDS) на Windows Server 2016/2012 R2.
В Windows Server 2012 R2 и Windows 8.1 механизм аутентификации на уровне сети (NLA) включен по умолчанию, что не позволяет пользователям с просроченными паролями подключаться через RDP (вы, конечно, можете отключить NLA – link1, link2, но это нехорошо с точки зрения безопасности). При попытке подключиться к серверу узла сеанса удаленного рабочего стола (RDSH) с учетной записью пользователя, срок действия пароля которой истек, вы получаете следующее сообщение об ошибке:
Произошла ошибка аутентификации.
Невозможно связаться с местным органом безопасности
Удаленный компьютер: xxxxxx
Это могло быть из-за просроченного пароля
Обновите свой пароль, если срок его действия истек.
Следовательно, при использовании NLA проблема смены пароля, срок действия которого истек через RDP, может стать практически неразрешимой для удаленных пользователей, у которых нет других средств доступа к сети. Можно, конечно, попросить пользователей сменить пароль заранее прямо в сеансе RDP, но, как правило, это не всегда срабатывает из-за элементарной забывчивости пользователей.
В Windows Server 2012 / R2 и более поздних версиях удаленные пользователи могут самостоятельно сбросить свой пароль (текущий пароль или пароль с истекшим сроком действия) через выделенную веб-страницу на сервере RD Web Access. Процесс смены пароля выглядит следующим образом: пользователь входит на веб-страницу регистрации на сервере с ролью веб-доступа к удаленному рабочему столу под своей учетной записью и меняет свой пароль с помощью специальной формы aspx.
Примечание. В Windows Server 2003 пользователи домена могли изменять свой пароль с помощью небольшого веб-приложения IISADMPWD (хотя официально не поддерживается).
Функция удаленной смены пароля доступна на сервере с ролью удаленного доступа к рабочему столу (веб-доступ к удаленному рабочему столу), но по умолчанию эта функция отключена. Чтобы изменить пароль, используйте сценарий в файле password.aspx, расположенном в каталоге C: Windows Web RDWeb Pages en-US.
В русской версии Windows Server (без языкового пакета) путь к файлу password.aspx будет другим и будет выглядеть так: C: Windows Web RDWeb Pages ru-RU.
Чтобы включить функцию смены пароля, на сервере с настроенной ролью веб-доступа к удаленным рабочим столам откройте консоль управления веб-сервером IIS (Управление IIS), перейдите в [Имя сервера] -> Сайты -> Веб-сайт по умолчанию -> RDWeb -> Страницы Раздел и откройте раздел с настройками приложения (Application settings).
ИНФОРМАЦИЯ:
-
У меня возникает ситуация, когда я вынужден использовать сервер (Windows 2012 R2), который НЕ является частью домена и НЕ имеет AD. Это не мой выбор, не оптимальный, но вне моего контроля.
-
У меня также есть локальные пользователи, которые подключаются к этому серверу через RDP, и у локальных пользователей есть политика истечения срока действия пароля.
-
Поскольку AD/Exchange не является частью изображения, пользователи не получают уведомления о том, что срок действия их паролей истекает.
ПРОБЛЕМА . Проблема в том, что истек срок действия пароля пользователя, и он пытается войти в систему с помощью подключения к удаленному рабочему столу. Это не позволяет им менять свой пароль.
Я снял флажок «Разрешить подключения ТОЛЬКО от компьютеров, на которых запущен удаленный рабочий стол с аутентификацией на уровне сети» со стороны сервера, поэтому сервер НЕ требует NLA для входящих сеансов RDP.
Тем не менее, при использовании диспетчера подключений к удаленному рабочему столу Windows, кажется, форсирует NLA.
Если я использую клиент удаленного рабочего стола «Терминалы», на стороне клиента есть возможность отключить использование «Аутентификация на уровне сети». Если я отключаю NLA через клиент Terminals и подключаюсь к серверу, это позволяет мне изменить пароль пользователя с истекшим сроком действия.
ВОПРОС: Я предполагаю, возможно, неправильно, что программа Terminals просто находится поверх протоколов подключения к удаленному рабочему столу Windows, и что если вы можете отключить клиентскую часть проверки подлинности на уровне сети через программу Terminals, то вы также должны иметь возможность отключите это через встроенный диспетчер подключений к удаленному рабочему столу Windows. К сожалению, я не вижу эту опцию в графическом интерфейсе диспетчера соединений и не вижу никаких параметров в «.RDP «файлы, специфичные для NLA.
Если я нажимаю «О программе» в диспетчере подключений к удаленному рабочему столу на стороне клиента, он сообщает, что «Проверка подлинности на уровне сети поддерживается». Формулировка заставляет меня поверить, что ее использование не является обязательным, но, опять же, я не вижу способа отключить ее в диспетчере соединений. Кстати, этот конкретный менеджер соединений v10.
При использовании удалённого подключения к операционным системам Microsoft Windows/Windows Server по протоколу RDP в некоторых случаях может возникать потребность в смене пароля учётной записи пользователя. При этом инициатором смены пароля в разных ситуациях может выступать как сам пользователь, так и администратор Windows-системы. В некоторых сценариях может получиться так, что, казалось бы, несложная задача смены пароля может стать не такой уж и простой. Поэтому в данной записи я попробую собрать информацию о самых разнообразных способах смены пароля учётной записи пользователя в RDP-сессии.
Способ №1 — «Горячие» клавиши
В случае, если пользователю Windows необходимо самостоятельно изменить пароль своей учётной записи, то в стандартной Windows-сессии пользователем может использоваться всем известное сочетание «горячих» клавиш Ctrl-Alt-Del. Это сочетание клавиш вызывает специальный экран Безопасности Windows (Windows Security), с которого доступна функция изменения пароля:
Если же речь заходит об использовании горячих клавиш в RDP-сессиях, то стоит заметить то, что во избежание перехвата некоторых сочетаний клавиш локальной клиентской системой (системой, с которой запускается RDP-клиент), перенаправление сочетаний клавиш Windows должно быть явно разрешено в свойствах RDP-клиента. Например в клиенте mstsc.exe, встроенном в Windows, данную опцию можно включить на закладке управления локальными ресурсам.
В стандартной первичной RDP-сессии для вызова специального экрана Безопасности Windows с функцией изменения пароля используется сочетание клавиш: Ctrl—Alt—End
В случае использования вложенных RDP-сессий (второго и последующего уровней), то есть когда из одной RDP-сессии открывается другая RDP-сессия, стандартное сочетание клавиш работать не будет. В разных источниках в интернете можно найти информацию об использовании более сложных сочетаний клавиш, таких как Ctrl—Alt—Shift-End или Shift-Ctrl-Alt-End. Однако мои эксперименты с Windows 10/Windows Server 2012 R2 показали, что данные сочетания клавиш попросту не работают (возможно они работали в ранних версиях ОС Windows). В этом случае на выручку нам может прийти следующий способ.
Способ №2 — Экранная клавиатура
В составе Windows имеется приложение «Экранная клавиатура» (On-Screen Keyboard), расположенное по умолчанию в %SystemRoot%System32osk.exe. Используя это приложение, мы можем решить проблему использования «горячих» клавиш во вложенных RDP-сессиях.
Находясь во вложенной RDP-сессии, вызовем окно запуска приложений. Вызвать его можно разными способами, например, через контекстное меню по кнопке Windows, или через Диспетчер задач (Task Manager):
Либо можно использовать сочетание клавиш Win-R.
В окне запуска приложений выполним запуск исполняемого файла osk.exe
После того, как откроется приложение «Экранная клавиатура», нажмём на физической клавиатуре сочетание клавиш Ctrl—Alt, так, чтобы это отобразилось на экранной клавиатуре и затем, удерживая это сочетание клавиш, на экранной клавиатуре мышкой нажмём кнопку Del.
Таким образом мы отправим в удалённую RDP-сессию сочетание клавиш Ctrl-Alt-Del, в следствие чего откроется специальный экран Безопасности Windows с функцией изменений пароля пользователя.
Способ №3 – Ярлык на VBS-скрипт или Powershell
Вызов экрана Безопасности Windows можно выполнить не только интерактивными способами, но и программными, например, с помощью скриптов.
Создадим VBS-скрипт, например, с именем Windows Security.vbs. Наполним скрипт следующим содержимым:
Set objShell = CreateObject("Shell.Application")
objShell.WindowsSecurity
Разместим скрипт в месте, доступном на чтение (но не для редактирования) для всех пользователей удалённого рабочего стола, например в каталоге %SystemRoot% (C:Windows). А ярлык на запуск скрипта можно разместить в любом доступном пользователям месте, например, в каталоге общего профиля %SystemDrive%UsersPublicDesktop
При запуске данного ярлыка у пользователя будет открываться экран Безопасности Windows с возможностью изменения пароля.
Для любителей PowerShell приведённый VBS-скрипт можно заменить PS-скриптом следующего вида:
$ShellObject = New-Object -ComObject Shell.Application
$ShellObject.WindowsSecurity()
Либо запускать из ярлыка команду вида:
C:WindowsSystem32WindowsPowerShellv1.0powershell.exe -noprofile -nologo -noninteractive -command "(new-object -ComObject shell.application).WindowsSecurity()"
Однако стоит отметить тот факт, что запуск варианта с PowerShell будет происходить медленней, чем варианта с VBS-скриптом.
Описанные здесь способы с запуском ярлыка, ссылающегося на скрипт, может попросту не сработать, так как в некоторых окружениях серверов служб удалённых рабочих столов может быть заблокирована возможность выполнения скриптов. В таком случае, можно воспользоваться следующим способом.
Способ №4 – Ярлык оболочки Windows Explorer
Если говорить о создании ярлыка запуска экрана Безопасности Windows, то имеется ещё один вариант создания такого ярлыка. Создаётся ярлык со ссылкой на расширение оболочки Windows Explorer следующего вида:
C:Windowsexplorer.exe shell:::{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}
Опять же, при запуске такого ярлыка у пользователя будет открываться экран Безопасности Windows с возможностью изменения пароля. Этот способ одинаково хорошо работает на Windows 10 и на Windows Server 2012 R2.
Способ №5 – Панель управления Windows (локальные учётные записи)
Данный способ относится лишь к локальным учётным записям пользователей. Изменить пароль учётной записи рядового локального пользователя можно через Панель управления Windows. В Windows 10 из раздела Панели управления «Учётные записи пользователей» доступен вызов окна «Параметры компьютера«, в котором имеется функция изменения пароля текущего локального пользователя.
Такие методы вызова апплета управления учётными записями пользователей Панели управления Windows, как, например команда «control userpasswords2«, в качестве отдельного способа мы выделять не будем, так как подобные действия требуют административных прав в удалённой системе. То же самое касается и таких CLI-утилит Windows, как net.exe (%SystemRoot%System32net.exe) (пример команды «net user username newpassword«), так как они тоже требуют повышения уровня прав пользователя.
Ремарка
Отдельно хочется отметить обстоятельство, про которое порой забывают администраторы, и это может приводить к разным курьёзным ситуациям.
Попытки смены пароля, инициированные самим пользователем, могут оказаться безуспешными в случае, если пароль был недавно изменён и на удалённую Windows систему действует политика безопасности, определяющая минимальный срок действия пароля.
Как правило, это настраивается на уровне стандартных доменных групповых политик Active Directory и/или механизмов Password Settings objects (PSOs).
Повторюсь, что повлиять на ситуацию эта политика может только в случаях, когда пользователь самостоятельно инициирует процедуру смены пароля.
Далее мы поговорим о сценарии, при котором требование смены пароля включается для учётной записи пользователя форсировано администратором сервера (для локальных учётных записей), либо администратором службы каталогов Active Directory (для доменных учётных записей).
Практика показывает, что как только администратором включено требование смены пароля пользователя при следующем входе в систему, у пользователя могут возникнуть проблемы с подключением по протоколу RDP, если на стороне RDS сервера (а в некоторых случаях и на стороне RDS клиента) предварительно не предпринято никаких действий по специальной настройке обработки таких ситуаций. Далее мы рассмотрим пару примеров такой настройки.
Способ №6 — Remote Desktop Web Access
Клиентский доступ к службам Windows Server RDS может быть организован через веб-интерфейс серверной роли Remote Desktop Web Access (RDWA). В функционале этой роли имеется выключенная по умолчанию возможность смены пароля пользователя в процессе аутентификации на веб-странице RDWA.
Сразу стоит отметить то, что данный способ смены пароля будет доступен только в том случае, если на веб-узлах RDWA используется аутентификация на основе формы (Forms Authentication), а этот тип аутентификации несовместим с типом Windows Authentication, о подключении которого мы говорили ранее.
Чтобы включить данную возможность в Windows Server 2012/2012 R2 откроем консоль управления Internet Information Services (IIS) Manager, выберем сайт RDWA, развернём RDWeb > Pages и в разделе настроек ASP.NET выберем настройку опций веб-приложения Application Settings:
В перечне опций находим PasswordChangeEnabled и меняем установленное по умолчанию значение false на true:
Если серверов RDWA несколько и они работают в пуле за балансировщиком, например Windows NLB, то не забываем выполнить данное изменение на всех других серверах пула.
Теперь попытаемся от имени пользователя, у которого в свойствах учётной записи установлено требование смены пароля при следующем входе, аутентифицироваться на веб-странице RDWA:
После ввода учётных данных пользователя появится сообщение о том, что пароль пользователя требует замены и ссылка на страницу с функцией смены пароля (https://<RDWA FQDN>/RDWeb/Pages/ru-RU/password.aspx):
На этой отдельной странице пользователь сможет ввести свои текущие учётные данные и новый пароль:
В случае успешной смены пароля пользователь получит соответствующее сообщение:
При необходимости ссылку на страницу смены пароля можно сделать доступной не только тем пользователям, у которых после аутентификации возникает требование смены пароля, но и всем остальным пользователям, чтобы они могли самостоятельно выполнять смену пароля по собственной инициативе через веб-страницу RDWA. Для этого можно будет внедрить ссылку на страницу password.aspx на странице входа login.aspx (по умолчанию страницы расположены в каталоге %windir%WebRDWebPagesru-RU)
Если же говорить про Windows Server 2008 R2, то в этой ОС для использования функции смены пароля в RDWA может потребоваться установка обновления KB2648402 — You cannot change an expired user account password in a remote desktop session that connects to a Windows Server 2008 R2-based RD Session Host server in a VDI environment.
Способ №7 – Специальный RDP-файл
Если пользователь выполняет подключение к удалённому рабочему столу на базе Windows Server 2012/2012 R2 через прямой запуск стандартного клиента mstsc.exe, то в ситуации с включенным признаком требования смены пароля, попытка подключения может быть завершена с ошибкой «You must change your password before logging on the first time. Please update your password or contact your system administrator or technical support«.
Если ситуация требует того, чтобы пользователь самостоятельно изменил свой пароль при первом входе в систему, то это потребует некоторого изменения уровня безопасности настроек протокола RDP на стороне RDS сервера и подготовки специального RDP-файла на стороне клиента.
Сначала на клиентской стороне откроем mstsc.exe, настроим все нужные параметры подключения к серверу RDS и используя кнопку Сохранить как, создадим RDP-файл.
После этого откроем RDP-файл в текстовом редакторе и добавим в конец файла строку «enablecredsspsupport:i:0«
Добавление данного параметра в свойствах RDP-подключения позволит клиенту успешно установить RDP-сессию с удалённой системой и сменить пароль до получения доступа к удалённому рабочему столу. Однако этот параметр понизит уровень безопасности RDP-подключения, так как клиент не сможет использовать проверку подлинности на уровне сети — Network Level Authentication (NLA). И если на стороне RDS сервера включена обязательная проверка NLA, то пользователь всё равно не сможет подключиться и получит соответствующую ошибку «The remote computer requires Network Level Authentication, which your computer does not support…«.
Разрешить эту ситуацию можно только понизив уровень безопасности RDP на стороне RDS сервера, отключив обязательное требование проверки подлинности на уровне сети (NLA). Изменить эту настройку можно в свойствах системы на закладке Удалённый доступ:
В английской версии Windows название опции звучит как «Allow connections only from computers running Remote Desktop with Network Level Authentication (recommended)»
Если NLA нужно отключить на уровне коллекции серверов Windows Server 2012 R2, то сделать этом можно в свойствах коллекции сеансов, например через оснастку Server Manager:
После того, как отключено требование NLA на стороне RDS сервера, клиент с помощью специального RDP-файла, о котором мы сказали выше, должен успешно установить RDP-сессию и уже в ней получить сообщение о необходимости смены пароля:
И после этого пользователю будет показан экран, на котором он сможет задать новый пароль:
После успешной смены пароля последующие подключения по протоколу RDP будут проходить в штатном режиме без лишних запросов.
Заключение
Приведённый здесь перечень способов смены пароля при использовании протокола RDP не претендует на какую-то полноту и исключительность, а лишь отражает ту информацию, которую мне удалось найти в разных источниках по этому поводу. На мой взгляд, ни один из перечисленных способов нельзя считать наиболее удобным или универсальным, так как каждый из способов может применяться в определённых ограниченных сценариях и имеет, как преимущества, так и недостатки по сравнению с другими способами.
Дополнительные источники информации:
- TechNet Forums — RDP Message: You must change your password before logging on the first time. Please update your password or contact …
- Freek Berson — Password change option also available in RD Web Access on Windows Server 2008 R2
- TechNet Wiki — Windows Server 2012 RDS: Enabling the RD WebAccess Expired password reset option