如何为 Web 注册代理页配置 Kerberos 约束委派
本文提供了有关在 Web 注册代理页的自定义服务帐户上实现用户到代理的服务(S4U2Proxy)或 Kerberos 仅约束委派的分步说明。
原始 KB 数: 4494313
总结
本文提供用于实现用户到代理的服务的分步说明(S4U2Proxy)或仅限 Kerberos 的 Web 注册代理页的委派。 本文介绍以下配置方案:
- 为自定义服务帐户配置委派
- 配置到 NetworkService 帐户的委派
注意
本文中所述的工作流特定于特定环境。 相同的工作流可能不适用于不同的情况。 然而,原则仍然是一样的。 下图汇总了此环境。
方案 1:为自定义服务帐户配置约束委派
本部分介绍如何在对 Web 注册代理页使用自定义服务帐户时实现用户到代理(S4U2Proxy)或仅 Kerberos 约束委派。
1.将 SPN 添加到服务帐户
将服务帐户与服务主体名称(SPN)相关联。 为此,请按照下列步骤进行操作:
在Active Directory 用户和计算机中,连接到域,然后选择“PKI>PKI 用户”。
右键单击服务帐户(例如,web_svc),然后选择“ 属性”。
选择 属性编辑器>servicePrincipalName。
键入新的 SPN 字符串,选择“添加”(如下图所示),然后选择“确定”。
还可以使用 Windows PowerShell 配置 SPN。 为此,请打开提升的 PowerShell 窗口,然后运行
setspn -s SPN Accountname
。 例如,运行以下命令:setspn -s HTTP/webenroll2016.contoso.com web_svc
2. 配置委派
在服务帐户上配置 S4U2proxy(仅 Kerberos)约束委派。 为此,请在服务帐户的“属性”对话框中(如上一过程中所述),选择“委派>信任”此用户以仅委派到指定的服务。 确保 仅 选择“使用 Kerberos”。
关闭对话框。
在控制台树中,选择“计算机”,然后选择 Web 注册前端服务器的计算机帐户。
注意
此帐户也称为“计算机帐户”。
在计算机帐户上配置 S4U2 本身(协议转换)约束委派。 为此,请右键单击计算机帐户,然后选择“属性>委派>信任此计算机”以仅委派到指定的服务。 选中“使用任意身份验证协议”。
3.创建和绑定用于 Web 注册的 SSL 证书
若要启用 Web 注册页,请为网站创建域证书,然后将其绑定到默认网站。 为此,请按照下列步骤进行操作:
打开“Internet Information Services (IIS)管理器” 。
在控制台树中,选择<“主机名>”,然后选择“服务器证书”。
注意
<HostName> 是前端 Web 服务器的名称。
在 “操作” 菜单中,选择“ 创建域证书”。
创建证书后,在控制台树中选择 “默认网站 ”,然后选择“ 绑定”。
确保 端口 设置为 443。 然后在 SSL 证书下,选择在步骤 3 中创建的证书。
选择“确定”将证书绑定到端口 443。
4.将 Web 注册前端服务器配置为使用服务帐户
重要
确保服务帐户是 Web 服务器上的本地管理员或IIS_Users组的一部分。
右键单击 DefaultAppPool,然后选择“ 高级设置”。
选择“进程模型>标识”,选择“自定义帐户”,然后选择“设置”。 指定服务帐户的名称和密码。
在“设置凭据和应用程序池标识”对话框中选择“确定”。
在“高级设置”中,找到“加载用户配置文件”,并确保其设置为 True。
重新启动计算机。
方案 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
若要使用此类配置,请执行以下步骤:
在域的 DNS 区域文件中,创建别名记录或主机名记录,该记录将新的连接名称映射到 Web 注册角色 IP 地址。 使用 Ping 工具测试路由配置。
在前面讨论的示例中,
Contoso.com
区域文件具有将 ContosoWebEnroll 映射到 Web 注册角色的 IP 地址的别名记录。将新名称配置为 Web 注册前端服务器的 SPN。 为此,请按照下列步骤进行操作:
- 在Active Directory 用户和计算机中,连接到域,然后选择“计算机”。
- 右键单击 Web 注册前端服务器的计算机帐户,然后选择“ 属性”。
注意
此帐户也称为“计算机帐户”。
- 选择 属性编辑器>servicePrincipalName。
- 键入 HTTP/<ConnectionName。<>DomainName.com>,选择“添加”,然后选择“确定”。
注意
在此字符串中, <ConnectionName> 是已定义的新名称, <DomainName> 是域的名称。 在此示例中,字符串为 HTTP/ContosoWebEnroll.contoso.com。
1.配置委派
如果尚未连接到域,请在Active Directory 用户和计算机中执行此操作,然后选择“计算机”。
右键单击 Web 注册前端服务器的计算机帐户,然后选择“ 属性”。
注意
此帐户也称为“计算机帐户”。
选择“委派”,然后选择“信任此计算机”以仅委派到指定的服务。
注意
如果可以保证客户端连接到此服务器时始终使用 Kerberos 身份验证,请选择“ 仅使用 Kerberos”。 如果某些客户端将使用其他身份验证方法(例如 NTLM 或基于表单的身份验证),请选择“ 使用任何身份验证协议”。
2.创建并绑定用于 Web 注册的 SSL 证书
若要启用 Web 注册页,请为网站创建域证书,然后将其绑定到默认的第一个网站。 为此,请按照下列步骤进行操作:
打开 IIS 管理器。
在控制台树中,选择<“主机名>”,然后在操作窗格中选择“服务器证书”。
注意
<HostName> 是前端 Web 服务器的名称。
在 “操作” 菜单中,选择“ 创建域证书”。
创建证书后,选择 “默认网站”,然后选择“ 绑定”。
确保 端口 设置为 443。 然后,在 SSL 证书下,选择在步骤 3 中创建的证书。 选择“确定”将证书绑定到端口 443。
3. 将 Web 注册前端服务器配置为使用 NetworkService 帐户
右键单击 DefaultAppPool,然后选择“ 高级设置”。
选择“进程模型>标识”。 确保 已选择内置帐户 ,然后选择 NetworkService。 选择“确定”。
在“高级属性”中,找到“加载用户配置文件”,并确保其设置为 True。
重启 IIS 服务。
相关主题
有关这些进程的详细信息,请参阅 对 Web 应用程序用户进行身份验证。
有关 S4U2 本身和 S4U2proxy 协议扩展的详细信息,请参阅以下文章: