如何为 Web 注册代理页配置 Kerberos 约束委派
本文提供了在 Web 注册代理页的自定义服务帐户上实现服务到代理 (S4U2Proxy) 或仅 Kerberos 约束委派的分步说明。
原始 KB 编号: 4494313
摘要
本文提供针对 Web 注册代理页实现服务到代理的分步说明, (S4U2Proxy) 或仅限 Kerberos 的约束委派。 本文介绍以下配置方案:
- 为自定义服务帐户配置委派
- 配置对 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 注册页,请为网站创建域证书,然后将其绑定到默认网站。 为此,请按照下列步骤操作:
(IIS) 管理器打开 Internet Information Services。
在控制台树中,选择“主机名>”<,然后选择“服务器证书”。
注意
< 主机 名> 是前端 Web 服务器的名称。
在 “操作” 菜单中,选择“ 创建域证书”。
创建证书后,在控制台树中选择“ 默认网站 ”,然后选择“ 绑定”。
确保 端口 设置为 443。 然后在 “SSL 证书”下,选择在步骤 3 中创建的证书。
选择“ 确定” ,将证书绑定到端口 443。
4.将 Web 注册前端服务器配置为使用服务帐户
重要
确保服务帐户是 Web 服务器上的 本地管理员 或 IIS_Users 组的一部分。
右键单击“DefaultAppPool”,然后选择“高级设置”。
选择“ 处理模型>标识”,选择“ 自定义帐户”,然后选择“ 设置”。 指定服务帐户的名称和密码。
在“设置凭据和应用程序池标识”对话框中选择“确定”。
在 “高级设置”中,找到 “加载用户配置文件”,并确保将其设置为 True。
重启计算机。
方案 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
若要使用此类配置,请执行以下步骤:
在域的 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 管理器。
在控制台树中,选择“主机名>”<,然后在“操作”窗格中选择“服务器证书”。
注意
< 主机 名> 是前端 Web 服务器的名称。
在 “操作” 菜单中,选择“ 创建域证书”。
创建证书后,选择“ 默认网站”,然后选择“ 绑定”。
确保 端口 设置为 443。 然后,在 “SSL 证书”下,选择在步骤 3 中创建的证书。 选择“ 确定” ,将证书绑定到端口 443。
3.将 Web 注册前端服务器配置为使用 NetworkService 帐户
右键单击“DefaultAppPool”,然后选择“高级设置”。
选择“ 处理模型>标识”。 确保已选择 “内置帐户 ”,然后选择“ NetworkService”。 然后,选择“确定”。
在 “高级属性”中,找到 “加载用户配置文件”,并确保将其设置为 True。
重启 IIS 服务。
相关主题
有关这些过程的详细信息,请参阅 对 Web 应用程序用户进行身份验证。
有关 S4U2 自身和 S4U2proxy 协议扩展的详细信息,请参阅以下文章: