概述
以下文章解释了如何在 L4 负载均衡器 + SSL 终止环境中配置 IIS 中的集成 Windows 身份验证 (IWA)。

配置此方法时,由于 SPN(服务主体名称)设置不正确或重复,身份验证经常失败。
本文对SPN注册及其必要程序进行了全面解释。
本文中的示例结构
[客户端浏览器] | | HTTPS 访问 v [L4 负载均衡器 (TCP 443)] | | vv [服务器 1 (IIS)] [服务器 2 (IIS)]
- 完全限定域名:
sso.chat-messenger.com - IIS主机名:
服务器1,服务器2 - 共享服务帐户:
CAMTEST\cam-svc
问题:SPN 重复错误
在集成 Windows 身份验证中,客户端会查找它正在访问的服务的 FQDN 的 SPN,并获取相应服务帐户的 Kerberos 票证。
setspn -S HTTP/sso.chat-messenger.com Server1$ setspn -S HTTP/sso.chat-messenger.com Server2$
如上所述,相同的 FQDN(sso.chat-messenger.com为不同主机(Server1、Server2)注册 SPN 时,出现以下错误:
发现重复的SPN,操作中止。.
解决方案:将 SPN 注册到共享服务帐户。
当在多个主机上使用相同的 FQDN 时,只需在共享服务帐户中注册一个 SPN 即可。
创建共享服务帐户
虽然在 IIS 应用程序池中运行的服务帐户可以是域用户(只要它属于域用户组),但通常建议将服务帐户与普通用户分开,以防止意外错误并明确密码策略的应用范围。OU = 服务帐户 像这样,OU 用户 为了将其与 Active Directory 域控制器区分开来,摄像头服务 创建它。

使用您的服务帐户注册SPN。
我们将使用上面创建的服务帐户注册 SPN。
setspn -S HTTP/sso.chat-messenger.com CAMTEST\cam-svc
任何已加入域的设备均可接受。但是,需要具备域管理员权限。
• SPN 也用于 HTTPS 通信。HTTP/主机名您必须按此格式注册。
IIS 应用程序池配置
服务器1, 服务器2 两个服务器上应用程序池的执行用户都是您创建的服务帐户。 CAMTEST\cam-svc 放

IIS 管理器的“配置编辑器”
要将 IIS 应用程序池更改为服务帐户并确保 Windows 身份验证与 Kerberos 正常工作,您需要在 IIS 管理器的“配置编辑器”功能中配置以下设置:
system.webServer/security/authentication/windowsAuthentication部分使用应用程序池凭据を真的放使用内核模式を错误的放

为共享服务帐户设置“以批处理作业身份登录”权限。
应用程序池响应 Web 请求。 w3wp.exe工作进程已启动。如果使用共享服务帐户运行此进程,但未授予“以批处理作业身份登录”权限,则进程将被拒绝,并发生 HTTP 503 错误。因此,共享服务帐户需要具有“以批处理作业身份登录”权限(基于组策略对象)。
后续设置也可以通过每个 IIS 终端的本地安全策略进行控制,但 Active Directory 域控制器上的组策略对象 (GPO) 中的组织策略可能会施加限制。在这种情况下,需要在 GPO 级别进行控制,本节将介绍如何进行控制。
将 GPO 链接到 OU=ServiceAccounts 的步骤
服务帐户CAMTEST\cam-svcをOU = 服务帐户如果创建于
如果您没有将组策略(例如,IIS-BatchLogon-GPO)链接到此组织单元,摄像头服务该策略不适用。由于 GPO 的适用性取决于“它链接到哪个 OU”,因此务必将帐户位置与 GPO 链接到的位置相匹配。
gpmc.msc执行该命令并启动“组策略管理编辑器”。- 在左侧窗格中
camtest.com/ServiceAccounts右键单击 OU → "为该域创建 GPO 并将其链接到此容器。→ 输入任意名称(例如)IIS-BatchLogon-GPO) - 创建
IIS-BatchLogon-GPO编辑 - 计算机配置 → Windows 设置 → 安全设置 → 本地策略 → 用户权限分配 → 以批处理作业身份登录
- 双击打开对话框。
CAMTEST\cam-svc添加用户





关于 GPO 设置的应用
为确保 GPO 在目标 IIS 服务器上正确应用…… gpupdate /force 执行此操作至关重要。这将确保 GPO 设置立即生效。授予“以批处理作业身份登录”权限时尤其如此,因为策略实施可能存在延迟。 w3wp.exe 这可能导致启动失败。
