情况:使用域中的 Windows 10 工作站,OFFICE
我使用智能卡登录和证书启动与外部域中的 RDS 网关的 RDP 连接REMOTE
。外部域接受来自在OFFICE-CA
所用智能卡上颁发证书的 CA 的证书,该证书与工作站位于同一域中。RDP 身份验证导致错误 0xc000006d/0xc000006a(未知用户名)。服务器的事件日志报告,尝试使用使用了源域OFFICE
而不是目标域的显式凭据进行身份验证REMOTE
。如果我在使用同一张智能卡加入域的 PC 上测试本地登录,则 DC 将授予等于的REMOTE
用户访问权限。因此,基于证书的授权设置正确。[email protected]
REMOTE\user
我更进一步,在OFFICE
域策略中启用了“允许用户提示”,允许 Windows 10 的 RDP 客户端向远程 RDS 服务器提供预期的域\用户名,启动 RDP 会话并提供预期的字符串REMOTE\user
作为用户提示以帮助授权连接。这次 RDP 根据服务器日志成功授权,但是,RDP 客户端抛出“用户未知”错误并从本地强制关闭 RDP 连接。深入研究该问题后,我遇到了这个问题解释 NLA 的文章除其他内容外,还包含以下内容:
当您在此对话框中输入凭据时,即使您不选择保存它们,它们也会转到 CredSSP。然后,它会通过安全通道将凭据传递给 RD 会话主机服务器。
因此,无论用户提示与否,验证都应该成功。显然,Windows 10 RDP 客户端mstsc.exe
首先尝试在本地验证凭据(证书),确定域\用户名并将其发送到远程端,而远程端显然具有不同的域\用户名并且不授权连接。如果我启用并提供用户提示,则提示显然也会在本地端得到验证,并且显然会失败,而远程端确实正确验证了基于证书的凭据。
问题如下:
- NLA 的初始行为是什么时候发生改变的?
- 如何控制是否在远程端验证凭据之前使用客户端凭据验证,并将其禁用?
- 我是否需要在远程端配置一些额外的东西来维护 NLA 并允许来自任何位置的 RDP 客户端的 RDP 连接,该客户端提供智能卡证书作为凭据(前提是该证书有效)?