Tras instalar RDS en Windows Server 2022, los usuarios acceden al host sin problema, pero al intentar abrir RDP desde ese mismo servidor hacia otros equipos del dominio, la autenticación falla cuando usan cuentas de dominio. En esta guía encontrarás diagnóstico y pasos prácticos para restaurar el acceso seguro y con SSO.
Síntomas y contexto
El escenario típico es un Host de Sesión de Escritorio Remoto (RDSH) en Windows Server 2022 (incluso en modo evaluación) al que los usuarios de dominio se conectan correctamente. Desde ese RDSH, al iniciar otra sesión RDP hacia servidores del mismo dominio, aparece error de credenciales, solicitud repetida de usuario/contraseña o desconexión inmediata. Con cuentas locales del servidor de destino la conexión sí funciona.
- El problema solo ocurre en el “segundo salto” (RDSH → servidor de destino) y afecta a cuentas de Active Directory.
- Conexión directa RDP desde el PC del usuario al servidor de destino suele funcionar, lo que apunta a delegación de credenciales/NLA/SSO.
- En visores de eventos pueden verse Security 4625 (error de inicio de sesión) y eventos en TerminalServices-RemoteConnectionManager del equipo de destino.
Causas más comunes
- Derechos de inicio de sesión RDP no otorgados al grupo de dominio en los servidores de destino (“Permitir iniciar sesión a través de Servicios de Escritorio remoto”) o pertenencia faltante en el grupo local Remote Desktop Users.
- Network Level Authentication (NLA) habilitada, pero sin delegación de credenciales para el segundo salto (CredSSP/SSO no disponible desde el RDSH).
- Políticas de denegación activas (“Denegar el inicio de sesión a través de Servicios de Escritorio remoto”) que incluyen inadvertidamente a Domain Users o grupos anidados.
- Desfase horario (Kerberos), SPN confusos (“TERMSRV/servidor”), restricciones NTLM o firewall bloqueando 3389/TCP en el perfil de dominio.
- Escenario puntual de CredSSP Encryption Oracle Remediation tras parches de seguridad desalineados.
Solución paso a paso
Licenciamiento RDS (preventivo)
Aunque el modo evaluación de RDS no bloquea conexiones salientes, conviene verificar que el servidor de licencias está instalado, activado y con CALs asignadas (por usuario o dispositivo). Al finalizar el periodo de gracia se limitarán conexiones entrantes al RDSH, lo que enturbia el diagnóstico.
Otorga el derecho de inicio de sesión RDP en los destinos
En cada servidor de destino, asegúrate de que los grupos de dominio que se conectarán están autorizados:
- Ruta GPO/Política local: Configuración del equipo > Configuración de Windows > Configuración de seguridad > Directivas locales > Asignación de derechos de usuario > Permitir iniciar sesión a través de Servicios de Escritorio remoto.
- Revisa también Denegar el inicio de sesión a través de Servicios de Escritorio remoto y comprueba que Domain Users ni los grupos permitidos estén listados.
- Confirma pertenencia al grupo local Remote Desktop Users del servidor de destino.
Comandos útiles:
rem En cada servidor de destino (CMD):
net localgroup "Remote Desktop Users" "DOMINIO\GrupoRDP" /add
net localgroup "Remote Desktop Users"
rem Para DCs, usa GPO en "Controladores de dominio" (no se recomiendan cambios locales). </code></pre>
<p>Con PowerShell:</p>
<pre><code class="language-powershell"># Ver miembros del grupo local
Get-LocalGroupMember -Group "Remote Desktop Users"
Agregar grupo de dominio
Add-LocalGroupMember -Group "Remote Desktop Users" -Member "DOMINIO\GrupoRDP" </code></pre>
<h3>Comprueba NLA y compatibilidad CredSSP</h3>
<p>NLA exige autenticación previa (CredSSP). Si no hay delegación de credenciales desde el RDSH al segundo servidor, la autenticación puede fallar pese a credenciales correctas.</p>
<ul>
<li>Para aislar, <strong>desactiva NLA temporalmente en un servidor de pruebas</strong> y vuelve a probar desde el RDSH. Si funciona sin NLA, el foco pasa a la delegación/SSO.</li>
<li><strong>Ruta GPO:</strong> <em>Configuración del equipo > Plantillas administrativas > Componentes de Windows > Servicios de Escritorio remoto > Host de sesión > Seguridad > Requerir autenticación de usuario para conexiones remotas mediante NLA</em>.</li>
</ul>
<p>Si aparece un mensaje tipo “El equipo remoto requiere autenticación… CredSSP…”, valida la directiva <em>Encryption Oracle Remediation</em>:</p>
<ul>
<li><em>Configuración del equipo > Plantillas administrativas > Sistema > Delegación de credenciales > Corrección de Oracle de cifrado</em> = <strong>Mitigado</strong> o <strong>Forzado</strong> de forma consistente en origen y destino, con ambos sistemas parcheados.</li>
</ul>
<h3>Resuelve el “segundo salto”: delegación de credenciales</h3>
<p>Cuando un usuario entra por RDP al RDSH e inicia otra RDP hacia un servidor, se requiere permitir que el equipo origen (RDSH) use sus credenciales con seguridad. Hay tres caminos:</p>
<h4>Opción recomendada: Remote Credential Guard (RCG)</h4>
<p>Proporciona SSO sin exponer credenciales en el RDSH. Requisitos: Windows 10/11/Server 2016+ en clientes y destinos (válido en 2022).</p>
<ol>
<li>En una GPO aplicada al <strong>RDSH</strong> (o equipos que inician el segundo salto), configura:
<ul>
<li><em>Configuración del equipo > Plantillas administrativas > Sistema > Delegación de credenciales > Restringir la delegación de credenciales a servidores remotos</em> = <strong>Habilitado</strong>, opción <strong>Requerir Remote Credential Guard</strong> (o <em>Preferir RCG</em> si conviven equipos antiguos).</li>
</ul>
</li>
<li>En el equipo desde el que abres RDP, inicia el cliente con:
<pre><code>mstsc /remoteGuard</code></pre>
También puedes guardarlo en un acceso directo del RDSH para los usuarios.</li>
</ol>
<p>Ventajas: no delega contraseñas ni TGT al servidor intermedio, reduce superficie de ataque y suele resolver el problema de SSO en el segundo salto.</p>
<h4>Alternativa controlada: delegación de credenciales clásica (CredSSP)</h4>
<p>Si RCG no es viable por compatibilidad, usa CredSSP con lista explícita de destinos:</p>
<ol>
<li>GPO en el <strong>RDSH</strong>:
<ul>
<li><em>Permitir delegar credenciales predeterminadas</em> = <strong>Habilitado</strong></li>
<li><em>Permitir delegar credenciales predeterminadas con la autenticación de servidor solo NTLM</em> = <strong>Habilitado</strong></li>
<li>(Opcional) <em>Permitir delegar credenciales guardadas</em> / <em>…con la autenticación de servidor solo NTLM</em> = <strong>Habilitado</strong></li>
<li>En <em>Mostrar…</em> agrega entradas específicas (evita comodines amplios):
<pre><code>TERMSRV/servidor1.contoso.local
TERMSRV/servidor2.contoso.local
TERMSRV/*.contoso.local (solo si es imprescindible)
</code></pre>
</li>
</ul>
</li>
<li>Actualiza políticas y prueba:
<pre><code>gpupdate /force
mstsc
Seguridad: evita TERMSRV/*
a menos que tengas segmentación y controles compensatorios. Limita por FQDN.
Alternativa temporal de soporte: modo restringido
Para comprobar rápidamente si el problema es el envío de credenciales:
mstsc /restrictedadmin
Este modo no envía credenciales al destino. Permite entrar (si el servidor lo soporta), pero no podrás reutilizar credenciales para recursos de red desde el destino (aparece como ANONYMOUS LOGON en saltos posteriores). Úsalo solo para diagnóstico o administración puntual.
Comprobaciones rápidas adicionales
- Firewall en destinos: regla Escritorio remoto (TCP-In) activa para el perfil de dominio.
Get-NetFirewallRule -DisplayGroup "Remote Desktop" | Where-Object {$_.Enabled -eq "True"}
- GPO efectiva en el RDSH y en destinos:
gpresult /r /scope computer
- Sincronización de hora:
w32tm /query /status w32tm /resync
Desfases > 5 minutos pueden romper Kerberos. - SPN y resolución de nombres:
setspn -Q TERMSRV/servidor1 setspn -Q TERMSRV/servidor1.contoso.local ping servidor1.contoso.local
- Limpiar tickets si sospechas de Kerberos:
klist purge
- Credenciales guardadas que interfieren:
cmdkey /list cmdkey /delete:TERMSRV/servidor1.contoso.local
Guía práctica con rutas y valores de GPO
Directiva | Ruta | Valor recomendado | Notas |
---|---|---|---|
Permitir iniciar sesión a través de Servicios de Escritorio remoto | Equipo > Windows > Seguridad > Directivas locales > Derechos de usuario | Incluye grupos de dominio autorizados | Verifica que la directiva de denegación no los incluya |
Requerir autenticación de usuario mediante NLA | Equipo > Plantillas adm. > RDS > Host de sesión > Seguridad | Habilitado | Desactivar solo temporalmente para aislar problemas |
Permitir delegar credenciales predeterminadas | Equipo > Plantillas adm. > Sistema > Delegación de credenciales | Habilitado + lista TERMSRV/FQDN | Restringe por FQDN; evitar comodines amplios |
Permitir delegar credenciales predeterminadas con NTLM solo | Equipo > Plantillas adm. > Sistema > Delegación de credenciales | Habilitado + lista TERMSRV/FQDN | Útil para entornos mixtos |
Restringir la delegación de credenciales a servidores remotos | Equipo > Plantillas adm. > Sistema > Delegación de credenciales | Requerir Remote Credential Guard | O “Preferir RCG” si hay equipos no compatibles |
Corrección de Oracle de cifrado (CredSSP) | Equipo > Plantillas adm. > Sistema > Delegación de credenciales | Mitigado/Forzado de forma consistente | Para el mensaje de “Encryption Oracle Remediation” |
Eventos y diagnósticos que aceleran el hallazgo
Origen | Evento | Qué indica | Acción sugerida |
---|---|---|---|
Security | 4625 (inicio de sesión erróneo) | Códigos de estado/subestado (p.ej., 0xC000006D/0xC000006E) revelan credenciales incorrectas o restricción de inicio de sesión | Revisar derechos de usuario y pertenencias de grupo |
TerminalServices-RemoteConnectionManager | 1149 (autenticación correcta) / errores correlativos | Éxito o fallo en fase de autenticación RDP | Cotejar con NLA/Delegación y GPO |
System | Time-Service | Problemas de sincronización de hora | Corregir NTP; Kerberos depende del reloj |
Buenas prácticas de seguridad
- Preferir Remote Credential Guard a la delegación clásica; reduce exposición de credenciales en el RDSH.
- Si usas delegación clásica, limita por FQDN (evita
TERMSRV/*
) y segmenta por OU/GPO. - No dejes NLA desactivada en producción; úsala solo para pruebas.
- Verifica en las cuentas sensibles de AD que no estén marcadas como “La cuenta es confidencial y no se puede delegar” si necesitas delegación clásica; de lo contrario, la autenticación en segundo salto puede fallar.
- En controladores de dominio, aplica derechos de RDP únicamente a roles que lo necesiten y registra auditoría reforzada.
Checklist operativo
- Verifica que el servidor de licencias RDS está activo y con CALs publicadas.
- En los servidores de destino:
- Otorga “Permitir iniciar sesión a través de Servicios de Escritorio remoto”.
- Incluye a los grupos de dominio en Remote Desktop Users.
- Asegura que ninguna GPO de “Denegar…” bloquee a los grupos permitidos.
- Valida NLA (prueba desactivación temporal en un laboratorio).
- Configura Remote Credential Guard o, en su defecto, delegación de credenciales con
TERMSRV/FQDN
. - Confirma firewall, hora y GPO efectiva (
gpresult /r
), y revisa eventos 4625/1149.
Preguntas frecuentes
¿Por qué con cuentas locales funciona y con dominio no?
Porque las locales no requieren delegación ni Kerberos entre equipos. Las cuentas de dominio sí dependen de NLA/SSO y de los derechos de inicio de sesión en los destinos.
¿El modo evaluación de RDS bloquea las conexiones salientes?
No. El fin del periodo de gracia restringe conexiones entrantes al RDSH, pero no debería impedir el segundo salto. Aun así, configura licenciamiento para evitar ruidos en el diagnóstico.
¿Necesito Delegación Restringida de Kerberos (KCD) en AD?
No para RDP estándar. RCG o CredSSP con TERMSRV/
suelen bastar. La KCD aplica cuando servicios intermedios deben actuar en nombre del usuario hacia otros protocolos/servicios.
¿Qué hay de los controladores de dominio?
El derecho “Permitir iniciar sesión a través de Servicios de Escritorio remoto” en DCs es más restrictivo y se gestiona por la GPO de Controladores de dominio. Evita exponer DCs innecesariamente.
Flujo de pruebas sugerido de diez minutos
- Desde el RDSH:
mstsc /remoteGuard
a un destino compatible. Si entra, el problema era la delegación clásica. - Si falla: desactiva NLA solo en el destino de pruebas y repite. Si ahora funciona, enfócate en CredSSP/Delegación.
- Ejecuta
gpresult /r
en RDSH y destino; confirma que la GPO con Delegación de credenciales se aplicó. - En el destino, revisa Security 4625 y TerminalServices-RemoteConnectionManager para el motivo exacto.
Script de verificación rápida
Este script (ejecutado en el RDSH con permisos de administrador) revisa puntos clave y genera un reporte básico:
$Destinos = @("servidor1.contoso.local","servidor2.contoso.local")
Write-Host "== Verificando Firewall RDP en destinos =="
foreach(\$d in \$Destinos){
try{
\$rdp = Test-NetConnection -ComputerName \$d -Port 3389 -InformationLevel Detailed
"{0} - RDP:{1} | RTT:{2}ms" -f \$d, (\$rdp.TcpTestSucceeded), (\$rdp.PingReplyDetails.RoundtripTime)
} catch { "\$d - Error conectividad: $\_" }
}
Write-Host "\`n== Estado NLA en destinos =="
\$regPath = "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp"
foreach(\$d in \$Destinos){
try{
\$v = Invoke-Command -ComputerName \$d -ScriptBlock {
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name UserAuthentication -ErrorAction Stop
}
"{0} - NLA(UserAuthentication)={1}" -f \$d, \$v.UserAuthentication
} catch { "\$d - Error leyendo registro: $\_" }
}
Write-Host "\`n== Grupos 'Remote Desktop Users' =="
foreach(\$d in \$Destinos){
try{
Invoke-Command -ComputerName \$d -ScriptBlock { Get-LocalGroupMember -Group "Remote Desktop Users" } |
Select-Object -Property @{N="Servidor";E={\$d}}, Name, ObjectClass |
Format-Table -AutoSize
} catch { "\$d - Error obteniendo miembros: $\_" }
}
Write-Host "\`n== Hora/Kerberos =="
w32tm /query /status
Write-Host "\`n== GPO aplicada (equipo) en este RDSH =="
gpresult /r /scope computer
Resumen accionable
- Garantiza licenciamiento RDS para evitar efectos colaterales.
- Otorga derechos RDP y pertenencia a Remote Desktop Users en los destinos; elimina denegaciones involuntarias.
- Usa RCG siempre que sea posible; de lo contrario, CredSSP con
TERMSRV/FQDN
. - Valida NLA, hora, SPN y firewall; aclara el motivo con eventos 4625/1149.
Plantilla de GPO mínima para el segundo salto
Aplica esta GPO al OU del RDSH:
- Delegación de credenciales:
- Restringir la delegación de credenciales a servidores remotos = Requerir Remote Credential Guard
- (Si no usas RCG) Permitir delegar credenciales predeterminadas = Habilitado y lista:
TERMSRV/servidor1.contoso.local TERMSRV/servidor2.contoso.local
- (Si hay NTLM) Permitir delegar credenciales predeterminadas con la autenticación de servidor solo NTLM = Habilitado con la misma lista.
Cierre
Si los usuarios pueden entrar al RDSH pero no encadenar una segunda RDP hacia servidores del dominio, el 90% de los casos se resuelve corrigiendo derechos de inicio de sesión en los destinos y activando un método seguro de delegación (idealmente Remote Credential Guard). Complementa con verificación de NLA, hora, firewall y GPO efectiva, y utiliza los eventos del sistema para confirmar el punto exacto de fallo. Con esto, el “segundo salto” vuelve a funcionar con SSO y sin sacrificar seguridad.