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

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

原始 KB 数: 4494313

总结

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

  • 为自定义服务帐户配置委派
  • 配置到 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. 打开“Internet Information Services (IIS)管理器” 。

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

    注意

    <HostName> 是前端 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 注册服务器的计算机名称是 WEBENROLLMAC(在 Contoso 域中)。 你希望传入连接改用名称 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. 在控制台树中,选择<“主机名>”,然后在操作窗格中选择“服务器证书”。

    注意

    <HostName> 是前端 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 协议扩展的详细信息,请参阅以下文章: