Cómo restablecer una contraseña vencida mediante el acceso web a Escritorio remoto en Windows Server

El tema del restablecimiento de contraseñas en servidores RDS puede ser un verdadero dolor de cabeza si no se está familiarizado con su funcionamiento interno. Especialmente cuando los usuarios remotos no pueden cambiar sus contraseñas caducadas a través de una conexión RDP típica debido a la configuración de NLA (Autenticación a Nivel de Red) en Windows Server 2012 R2 y versiones posteriores. NLA es una buena función de seguridad, pero complica las cosas porque bloquea las actualizaciones de contraseñas durante las sesiones remotas cuando estas ya han caducado. No es la mejor opción cuando los usuarios están bloqueados y no pueden acceder para solucionar el problema.

La solución alternativa es proporcionarles un portal web (como un formulario web especial en el sitio de Acceso Web a Escritorio Remoto) donde puedan actualizar sus contraseñas sin necesidad de conectarse mediante RDP. Esto es de gran ayuda, especialmente cuando los usuarios están fuera de la red corporativa y no pueden usar una VPN ni acceder fácilmente a su equipo local. En algunas configuraciones, ha sido fundamental, pero primero es necesario realizar una pequeña configuración.

Cómo habilitar el restablecimiento remoto de contraseña a través del acceso web de Escritorio remoto

Asegúrese de tener el servidor y la función correctos

  • En primer lugar, confirme que su servidor tenga instalado el rol de Acceso Web a Escritorio Remoto. Normalmente, esto se realiza a través del Administrador del Servidor, en Agregar Roles y Características. Si utiliza una granja, identifique el servidor correcto con el rol de Acceso Web a Escritorio Remoto (RDS-Web-Access).Pruebe a ejecutar el siguiente comando de PowerShell:
Get-RDServer -ConnectionBroker rdcb1.yourdomain.com | where {$_.roles -contains "RDS-WEB-ACCESS"}
  • Confirme que su implementación esté configurada correctamente y que tenga acceso de administrador al servidor web que aloja la función de acceso web a Escritorio remoto.
  • Configurar la función de cambio de contraseña en IIS

    • En el servidor que ejecuta el Acceso Web a Escritorio remoto, abra el Administrador de IIS ejecutando inetmgr. Vaya a [Nombre del servidor] > Sitios > Sitio web predeterminado > RDWeb > Páginas y busque el archivo Web.config. Esta ruta suele ser C:\Windows\Web\RDWeb\Pages\en-US\Web.config, pero puede variar si utiliza una versión de idioma diferente (por ejemplo, fr-FRpara francés).
    • Busca el parámetro PasswordChangeEnabled. Si falta, añádelo. Cambia su valor a verdadero de la siguiente manera:
    <add key="PasswordChangeEnabled" value="true" />
  • No olvide reiniciar IIS después para que los cambios se mantengan; simplemente ejecútelo iisreseten un PowerShell de administrador o en el símbolo del sistema.
  • Verificar que esté funcionando

    • Una vez reiniciado IIS, visite la página de cambio de contraseña manualmente en: https://yourserver/RDWeb/Pages/en-US/password.aspx.
    • Inicia sesión con una cuenta de usuario cuya contraseña haya caducado. Deberías ver un mensaje para actualizarla. Si el certificado SSL aún no está configurado, esto puede causar problemas, así que considera usar un SSL gratuito como Let’s Encrypt si es posible. De lo contrario, los navegadores podrían bloquear el acceso a la página.

    Nota sobre los métodos de autenticación

    Esta función solo funciona si la autenticación de formularios está habilitada en IIS para el sitio de Acceso web a Escritorio remoto. Si está configurada como Autenticación de Windows, la opción de cambio de contraseña no aparecerá. Puede comprobarlo en el Administrador de IIS, en la configuración de autenticación de la carpeta RDWeb. Es necesario cambiar a la autenticación de formularios para habilitar el cambio de contraseña basado en formularios.

    Agregar un enlace directo a la página de cambio de contraseña en la página de inicio de sesión

    1. Haz una copia de seguridad de tu archivo login.aspx, ubicado en C:\Windows\Web\RDWeb\Pages\en-US\login.aspx. Luego, ábrelo con cualquier editor de texto (Notepad++, VSCode, etc.).
    2. Navegue hasta la línea 429 o busque el bloque HTML que menciona los mensajes de contraseña caducada. Normalmente, hay un marcador de posición como <tr id="trPasswordExpiredNoChange">.
    3. Pegue el siguiente fragmento de código para insertar un enlace directamente a la página de cambio de contraseña:
    4. <!-- Begin: Add Change Password Link --> <tr> <td align="right"> <a href="password.aspx" title="Change AD User Password">Click here</a> to change your password.</td> </tr> <!-- End: Add Change Password Link -->
    5. Guarde el archivo y reinicie IIS con [Nombre iisresetdel usuario].Ahora, al acceder a la página de inicio de sesión, los usuarios verán un enlace útil para cambiar su contraseña en cualquier momento.

    Esta pequeña modificación puede ahorrar muchos dolores de cabeza cuando se olvida cambiar la contraseña antes de que caduque o se bloquee. Solo una nota: si los usuarios usan credenciales almacenadas en caché localmente, estas no se actualizarán automáticamente después de cambiar la contraseña a través de este portal web. Aun así, es mucho mejor que nada.

    De todos modos, configurarlo no es nada fácil, pero una vez que funciona, los usuarios pueden gestionar sus contraseñas por sí mismos, lo cual es una gran ventaja. Quizás solo sea necesario hacer algunos ajustes para que todo funcione de forma fluida y segura.

    Resumen

    • Habilitar PasswordChangeEnabled en IIS Web.config.
    • Reinicie IIS con iisreset.
    • Pruebe el acceso en yourserver/RDWeb/Pages/en-US/password.aspx.
    • Agregue un enlace a la página de inicio de sesión para un acceso rápido.

    Resumen

    Conseguir que los usuarios remotos actualicen sus contraseñas caducadas sin problemas es posible con un poco de configuración en IIS. La herramienta está ahí, solo hay que habilitarla y ajustar las páginas web. Con suerte, esto evitará que los usuarios llamen al soporte cada cinco minutos. Ojalá esto ayude a quienes se inician en las configuraciones de RDS.