WinRM 中的多跃点支持

Windows远程管理 (WinRM) 支持跨多个远程计算机委派用户凭据。 多跃点支持功能现在可以使用凭据安全服务提供程序 (CredSSP) 进行身份验证。 CredSSP 使应用程序能够将用户的凭据从客户端计算机委托给目标服务器。

CredSSP 身份验证适用于无法使用 Kerberos 委派的环境。 添加了对 CredSSP 的支持,允许用户连接到远程服务器,并能够访问第二跃点计算机,例如文件共享。

注意

WinRM 客户端和服务器仅支持使用显式凭据进行 CredSSP 身份验证。

多跃点支持配置设置和详细信息

有多种机制可用于配置 WinRM 设置。 在以下过程中,将使用 winrm 实用工具和 组策略 编辑器 (GPEdit.msc) 。 还可以使用 Windows PowerShell 为 WinRM 启用 CredSSP。 有关详细的配置信息和用法示例,请参阅 Enable-WSManCredSSPGet-WSManCredSSP 和 Disable-WSManCredSSP Windows PowerShell cmdlet。

必须在客户端设置和远程计算机上的服务设置中启用 CredSSP 委派。 此外,使用 CredSSP 需要在服务器上设置 HTTP 或 HTTPS 侦听器

使用 WinRM 的 CredSSP 身份验证配置多跃点支持

  1. 必须在客户端配置设置中启用 CredSSP。 可以通过手动或组策略设置启用此标志。 默认设置为 FalseAllow CredSSP 身份验证策略位于以下路径:计算机配置\管理模板\Windows组件\Windows远程管理 (WinRM) \WinRM 客户端。

    以下命令演示如何使用 winrm 实用工具在 WinRM 客户端上启用 CredSSP:

    winrm set winrm/config/client/auth @{CredSSP=“true”}

  2. 必须在 WinRM 服务配置设置中启用 CredSSP。 可以通过手动或组策略设置启用此标志。 默认设置为 FalseAllow CredSSP 身份验证策略位于以下路径:计算机配置\管理模板\Windows组件\Windows远程管理 (WinRM) \WinRM 服务。

    以下命令演示如何使用 winrm 实用工具在 WinRM 服务上启用 CredSSP:

    winrm set winrm/config/service/auth @{CredSSP=“true”}

  3. 必须在 WinRM 客户端上启用 AllowFreshCredentials (AllowFreshCredentials) 策略设置,并且必须将具有 WSMAN 前缀的服务主体名称 (SPN) 添加到策略。 SPN 表示可以委托用户凭据的目标计算机。 SPN 可以设置为一台或多台计算机。 下表包含 SPN 的有效格式示例。

    SPN 说明
    WSMAN/myComputer.myDomain.com
    在 myComputer.myDomain.com 上运行的 WinRM 服务器。
    WSMAN/*.myDomain.com
    在 myDomain.com 中运行的所有 WinRM 服务器。
    WSMAN/*.fabrikam.myDomain.com
    在 .fabrikam.myDomain.com 的所有计算机上运行的所有 WinRM 服务器。

    有关设置组策略的详细信息,请参阅Windows远程管理的安装和配置

    有关 AllowFreshCredentials 策略的详细信息,请参阅组策略编辑器提供的策略说明。 AllowFreshCredentials 策略位于以下路径:计算机配置\管理模板\系统\凭据委派。

  4. 必须在服务器上配置 HTTPS 或 HTTP 侦听器 。 用于配置 HTTPS 侦听器 的证书指纹还用于在 WinRM 服务设置下配置 CertificateThumbprint 设置。

    以下命令演示如何使用 winrm 实用工具配置 HTTPS 侦听器

    winrm quickconfig -transport:https

如果客户端和服务器之间的 Kerberos 身份验证不可行,则用户必须为多跃点支持配置以下设置之一:

  • 为了提高安全性,用户应将 CertificateThumbprint 属性添加到 WinRM 服务设置。 如果 WinRM 服务配置了 CertificateThumbprint 属性,该服务会尝试在本地计算机存储中找到相应的证书,并将此证书用于 CredSSP 身份验证。 如果 WinRM 服务使用本地计算机存储中的证书对服务器进行身份验证,则必须允许网络服务帐户访问证书的私钥。

    备注

    如果未配置服务设置,WinRM 服务器将使用内存中创建的自签名证书来加密发送到客户端的消息。 但是,此证书不用于身份验证。

  • 如果 Kerberos 身份验证和证书指纹均不可用,用户可以启用 NTLM 身份验证。 如果使用 NTLM 身份验证,则必须启用具有仅 NTLM 的服务器身份验证的 Allow Fresh Credentials (AllowFreshCredentialsWhenNTLMOnly) 策略,并且必须将具有 WSMAN 前缀的 SPN 添加到策略。 此设置的安全性低于 Kerberos 身份验证和证书指纹,因为凭据将发送到未经身份验证的服务器。

    有关 AllowFreshCredentialsWhenNTLMOnly 策略的详细信息,请参阅组策略编辑器提供的策略说明。 AllowFreshCredentialsWhenNTLMOnly 策略位于以下路径:计算机配置\管理模板\系统\凭据委派。

将 CredSSP 身份验证与显式凭据配合使用

用户可以通过 HTTP 和 HTTPS 指定显式凭据。 以下命令演示如何使用 winrm 实用工具通过 HTTPS 通过显式凭据使用 CredSSP 身份验证执行远程操作:

winrm OPERATION -remote:https://myMachine -authentication:CredSSP -username:myUsername -password:myPassword