如何为 Web 注册代理页配置 Kerberos 约束委派

本文提供了在 Web 注册代理页的自定义服务帐户上实现服务到代理 (S4U2Proxy) 或仅 Kerberos 约束委派的分步说明。

适用于:Window Server 2016、Window Server 2019、Windows Server 2012 R2
原始 KB 编号: 4494313

摘要

本文提供针对 Web 注册代理页实现服务到代理的分步说明, (S4U2Proxy) 或仅限 Kerberos 的约束委派。 本文介绍以下配置方案:

  • 为自定义服务帐户配置委派
  • 配置对 NetworkService 帐户的委派

注意

本文中所述的工作流特定于特定环境。 相同的工作流可能不适用于不同的情况。 但是,原则保持不变。 下图总结了此环境。
示例环境中的服务器类型。

方案 1:为自定义服务帐户配置约束委派

本部分介绍如何在对 Web 注册代理页使用自定义服务帐户时实现用户到代理的服务 (S4U2Proxy) 或仅限 Kerberos 的约束委派。

1. 将 SPN 添加到服务帐户

将服务帐户与服务主体名称 (SPN) 相关联。 为此,请按照下列步骤操作:

  1. “Active Directory 用户和计算机”中,连接到域,然后选择“PKI>PKI 用户”。

  2. 右键单击服务帐户 (例如“web_svc) ”,然后选择“ 属性”。

  3. 选择“属性编辑器>servicePrincipalName”。

  4. 键入新的 SPN 字符串,选择“ 添加 (,如下图所示) ,然后选择 ”确定”。

    添加和配置 H T T P SPN 的指南。

    还可以使用Windows PowerShell来配置 SPN。 为此,请打开提升的 PowerShell 窗口,然后运行 setspn -s SPN Accountname。 例如,运行以下命令:

    setspn -s HTTP/webenroll2016.contoso.com web_svc
    

2.配置委派

  1. 在服务帐户上配置 S4U2proxy (Kerberos) 约束委派。 为此,请在服务帐户 (的“属性 ”对话框中,如上一过程) 中所述,选择“ 委派>信任此用户仅委派到指定服务”。 确保已选择 “仅使用 Kerberos ”。

    在“属性”对话框中的“委派”选项卡下配置web_svc属性。

  2. 关闭该对话框。

  3. 在控制台树中,选择“ 计算机”,然后选择 Web 注册前端服务器的计算机帐户。

    注意

    此帐户也称为“计算机帐户”。

  4. 在计算机帐户上配置 S4U2 自身 (协议转换) 约束委派。 为此,请右键单击该计算机帐户,然后选择 “属性>委派>信任此计算机”,以便仅委派到指定的服务。 选择“使用任何身份验证协议”

    在“仅信任此计算机委派到指定服务”选项下,选择“使用任何身份验证协议”。

3. 为 Web 注册创建和绑定 SSL 证书

若要启用 Web 注册页,请为网站创建域证书,然后将其绑定到默认网站。 为此,请按照下列步骤操作:

  1. (IIS) 管理器打开 Internet Information Services。

  2. 在控制台树中,选择“主机名>”<,然后选择“服务器证书”。

    注意

    <主机 名> 是前端 Web 服务器的名称。
    为网站添加域证书。

  3. “操作” 菜单中,选择“ 创建域证书”。

  4. 创建证书后,在控制台树中选择“ 默认网站 ”,然后选择“ 绑定”。

  5. 确保 端口 设置为 443。 然后在 “SSL 证书”下,选择在步骤 3 中创建的证书。

    添加证书并将其绑定到方案 1 的端口 443。

  6. 选择“ 确定” ,将证书绑定到端口 443。

4.将 Web 注册前端服务器配置为使用服务帐户

重要

确保服务帐户是 Web 服务器上的 本地管理员IIS_Users 组的一部分。
Web 服务器上的服务帐户的组。

  1. 右键单击“DefaultAppPool”,然后选择“高级设置”。

    配置应用程序池高级设置。

  2. 选择“ 处理模型>标识”,选择“ 自定义帐户”,然后选择“ 设置”。 指定服务帐户的名称和密码。

    将应用程序池标识配置为自定义服务帐户。

  3. 在“设置凭据应用程序池标识”对话框中选择“确定”。

  4. “高级设置”中,找到 “加载用户配置文件”,并确保将其设置为 True

    将“加载用户配置文件”设置设置为 True。

  5. 重启计算机。

方案 2:在 NetworkService 帐户上配置约束委派

本部分介绍如何在对 Web 注册代理页使用 NetworkService 帐户时实现 S4U2Proxy 或仅限 Kerberos 的约束委派。

可选步骤:配置用于连接的名称

可以为客户端可用于连接的 Web 注册角色分配名称。 此配置意味着传入请求不必知道 Web 注册前端服务器的计算机名称或其他路由信息,例如 DNS 规范名称 (CNAME) 。

例如,假设 Web 注册服务器的计算机名称是 Contoso 域) 中的 WEBENROLLMAC (。 你希望传入连接改用名称 ContosoWebEnroll。 在这种情况下,连接 URL 将如下所示:

https://contosowebenroll.contoso.com/certsrv

它不会如下所示:

https://WEBENROLLMAC.contoso.com/certsrv

若要使用此类配置,请执行以下步骤:

  1. 在域的 DNS 区域文件中,创建别名记录或主机名记录,用于将新连接名称映射到 Web 注册角色 IP 地址。 使用 Ping 工具测试路由配置。

    在前面讨论的示例中, Contoso.com 区域文件具有将 ContosoWebEnroll 映射到 Web 注册角色的 IP 地址的别名记录。

  2. 将新名称配置为 Web 注册前端服务器的 SPN。 为此,请按照下列步骤操作:

    1. 在“Active Directory 用户和计算机”中,连接到域,然后选择“计算机”。
    2. 右键单击 Web 注册前端服务器的计算机帐户,然后选择“ 属性”。

      注意

      此帐户也称为“计算机帐户”。

    3. 选择“属性编辑器>servicePrincipalName”。
    4. 键入 HTTP/<ConnectionName>。<DomainName.com>,选择“ 添加”,然后选择“ 确定”。

      注意

      在此字符串中,<ConnectionName> 是已定义的新名称,DomainName>< 是域的名称。 在此示例中,字符串为 HTTP/ContosoWebEnroll.contoso.com将 S P N 添加到前端服务器计算机帐户。

1.配置委派

  1. 如果尚未连接到域,请立即在Active Directory 用户和计算机中执行此操作,然后选择“计算机”。

  2. 右键单击 Web 注册前端服务器的计算机帐户,然后选择“ 属性”。

    注意

    此帐户也称为“计算机帐户”。

  3. 选择“ 委派”,然后选择“ 信任此计算机”,以便仅委派到指定服务

    注意

    如果可以保证客户端在连接到此服务器时始终使用 Kerberos 身份验证,请选择“ 仅使用 Kerberos”。 如果某些客户端将使用其他身份验证方法(如 NTLM 或基于表单的身份验证),请选择“ 使用任何身份验证协议”。

    在 Web 服务器计算机帐户上配置委派。

2.为 Web 注册创建和绑定 SSL 证书

若要启用 Web 注册页,请为网站创建域证书,然后将其绑定到默认的第一个站点。 为此,请按照下列步骤操作:

  1. 打开 IIS 管理器。

  2. 在控制台树中,选择“主机名>”<,然后在“操作”窗格中选择“服务器证书”。

    注意

    <主机 名> 是前端 Web 服务器的名称。 为网站添加域证书。

  3. “操作” 菜单中,选择“ 创建域证书”。

  4. 创建证书后,选择“ 默认网站”,然后选择“ 绑定”。

  5. 确保 端口 设置为 443。 然后,在 “SSL 证书”下,选择在步骤 3 中创建的证书。 选择“ 确定” ,将证书绑定到端口 443。

    添加证书并将其绑定到端口 443。

3.将 Web 注册前端服务器配置为使用 NetworkService 帐户

  1. 右键单击“DefaultAppPool”,然后选择“高级设置”。

    选择默认应用程序池的“高级设置”。

  2. 选择“ 处理模型>标识”。 确保已选择 “内置帐户 ”,然后选择“ NetworkService”。 然后,选择“确定”

    将应用程序池标识配置为内置 NetworkService 帐户。

  3. “高级属性”中,找到 “加载用户配置文件”,并确保将其设置为 True

    在“前进设置”中,将“加载用户配置文件”设置为 True。

  4. 重启 IIS 服务。

有关这些过程的详细信息,请参阅 对 Web 应用程序用户进行身份验证

有关 S4U2 自身和 S4U2proxy 协议扩展的详细信息,请参阅以下文章: