智能卡和远程桌面服务

本主题面向 IT 专业人员介绍在实现智能卡登录时远程桌面服务的行为。

将智能卡重定向逻辑和 WinSCard API 组合在一起,以支持将多个重定向会话转换为单个进程。

需要智能卡支持才能启用许多远程桌面服务方案。 这些地方包括:

  • 使用快速用户切换或远程桌面服务。 用户无法建立基于重定向的智能卡远程桌面连接。 也就是说,在快速用户切换中或从远程桌面服务会话进行连接尝试不成功
  • 启用加密文件系统 (EFS) 在快速用户切换或远程桌面服务会话中从本地安全机构 (LSA) 进程查找用户的智能卡读取器。 如果 EFS 无法找到智能卡读取器或证书,则 EFS 无法解密用户文件

远程桌面服务重定向

在远程桌面方案中,用户使用远程服务器来运行服务,而智能卡是用户使用的计算机本地的。 在智能卡登录方案中,远程服务器上的智能卡服务将重定向到连接到用户尝试登录的本地计算机的智能卡读取器。

智能卡服务重定向到智能卡阅读器。

远程桌面重定向

有关重定向模型的说明:

  1. 此方案是使用远程桌面服务的计算机上的远程登录会话。 在标记为 “客户端 会话) 的远程会话 (中,用户运行 net use /smartcard
  2. 箭头表示用户在命令提示符下键入 PIN 后 PIN 的流,直到该 PIN 在连接到远程桌面连接 (RDC) 客户端计算机的智能卡读取器中到达用户的智能卡
  3. 身份验证由会话 0 中的 LSA 执行
  4. CryptoAPI 处理在 LSA (lsass.exe) 中执行。 这是可能的,因为 RDP 重定向程序 (rdpdr.sys) 允许每个会话而不是每个进程的上下文
  5. ScHelper 库是特定于 Kerberos 协议的 CryptoAPI 包装器
  6. 重定向决策基于每个智能卡上下文,基于执行SCardEstablishContext调用的线程的会话

RD 会话主机服务器单一登录体验

作为通用条件符合性的一部分,RDC 客户端必须可配置为使用凭据管理器来获取和保存用户的密码或智能卡 PIN。 通用条件符合性要求应用程序不能直接访问用户的密码或 PIN。

通用条件符合性要求密码或 PIN 永远不会使 LSA 保持未加密状态。 分布式方案应允许密码或 PIN 在一个受信任的 LSA 和另一个受信任的 LSA 之间传输,并且不能在传输过程中进行未加密。

当启用智能卡的单一登录 (SSO) 用于远程桌面服务会话时,用户仍需要登录每个新的远程桌面服务会话。 但是,系统不会多次提示用户输入 PIN 以建立远程桌面服务会话。 例如,当用户双击位于远程计算机上的 Microsoft Word 文档图标后,系统会提示用户输入 PIN。 此 PIN 是使用凭据 SSP 建立的安全通道发送的。 PIN 通过安全通道路由回 RDC 客户端,并发送到 Winlogon。 除非 PIN 不正确或出现与卡相关的智能故障,否则用户不会收到有关 PIN 的任何其他提示。

远程桌面服务和智能卡登录

远程桌面服务允许用户使用智能卡登录,方法是在 RDC 客户端计算机上输入 PIN 并将其发送到 RD 会话主机服务器,其方式类似于基于用户名和密码的身份验证。

此外,需要为基于卡的智能登录启用特定于远程桌面服务的组策略设置。

若要启用智能卡登录到远程桌面会话主机 (RD 会话主机) 服务器,RDC 客户端计算机上必须存在密钥分发中心 (KDC) 证书。 如果计算机不在同一个域或工作组中,则可以使用以下命令部署证书:

certutil.exe -dspublish NTAuthCA "DSCDPContainer"

(DSCDPContainer CN) 公用名通常是证书颁发机构的名称。

示例:

certutil -dspublish NTAuthCA <CertFile> "CN=NTAuthCertificates,CN=Public Key Services,CN=Services,CN=Configuration,DC=engineering,DC=contoso,DC=com"

有关命令行工具的此选项的信息,请参阅 -dsPublish

远程桌面服务和智能卡跨域登录

若要启用对企业中资源的远程访问,必须在智能卡上预配域的根证书。 在已加入域的计算机中,在命令行运行以下命令:

certutil.exe -scroots update

有关命令行工具的此选项的信息,请参阅 -SCRoots

对于跨域的远程桌面服务,RD 会话主机服务器的 KDC 证书也必须存在于客户端计算机的 NTAUTH 存储中。 若要添加存储区,请在命令行运行以下命令:

certutil -addstore -enterprise NTAUTH <CertFile>

其中 CertFile 是 KDC 证书颁发者的根证书。

有关命令行工具的此选项的信息,请参阅 -addstore

注意

若要从未加入域的计算机使用智能卡登录,智能卡必须包含域控制器的根认证。 如果没有域控制器的根认证,就无法建立 PKI) 安全通道 (公钥基础结构。

仅当证书中的 UPN 使用以下格式时,才能跨域登录到远程桌面服务: <ClientName>@<DomainDNSName>

证书中的 UPN 必须包含可以解析的域。 否则,Kerberos 协议无法确定要联系哪个域。 可以通过启用 GPO X509 域提示来解决此问题。 有关此设置的详细信息,请参阅智能卡组策略和注册表设置