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

配置此方法时,经常会出现由于 SPN(服务主体名称)设置不正确或重复而导致身份验证失败的情况。
本文全面解释了 SPN 注册及其所需的任务。
本文配置示例
[客户端浏览器] | | HTTPS 访问 v [L4 负载均衡器 (TCP 443)] | | vv [服务器 1 (IIS)] [服务器 2 (IIS)]
- 完整合格域名 (FQDN):
sso.chat-messenger.com
- IIS 主机名:
服务器1
,服务器2
- 共享服务帐户:
CAMTEST\cam-svc
问题:重复 SPN 错误
通过集成 Windows 身份验证,客户端会查找其正在访问的 FQDN 的 SPN,并获取相应服务帐户的 Kerberos 票证。
setspn -S HTTP/sso.chat-messenger.com 服务器1$ setspn -S HTTP/sso.chat-messenger.com 服务器2$
如上所示,相同的 FQDN(sso.chat-messenger.com
在不同的主机(Server1、Server2)上注册.NET Framework 2.0.1的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
部分useAppPoolCredentials
表示渴望、喜欢、憎恨等的对象。真的
设置为使用内核模式
表示渴望、喜欢、憎恨等的对象。错误的
设置为

为共享服务帐户设置“作为批处理作业登录”权限
应用程序池响应网络请求。 w3wp.exe
(工作进程)。如果在共享服务帐户下运行此进程,且该帐户没有“以批处理作业身份登录”权限,则该进程将被拒绝,并会出现 HTTP 503 错误,因此共享服务帐户必须设置“以批处理作业身份登录”权限(基于 GPO)。
以下设置可以通过每个 IIS 终端的本地安全策略进行控制,但 Active Directory 域控制器上的 GPO(组策略对象)中的组织策略可能会施加限制。在这种情况下,需要在 GPO 本身中进行控制,本文将介绍如何进行控制。
将 GPO 链接到 OU=ServiceAccounts 的步骤
服务帐户CAMTEST\cam-svc
表示渴望、喜欢、憎恨等的对象。OU=服务帐户
如果你在
如果您没有将组策略(例如 IIS-BatchLogon-GPO)链接到此 OU,凸轮服务
该策略未应用到。GPO 的目标由“它链接到哪个 OU”决定,因此将帐户的位置与链接的 GPO 匹配非常重要。
通用管理控制台
运行命令启动组策略管理编辑器。- 在左侧窗格中
camtest.com/ServiceAccounts
右键单击 OU →“在此域中创建 GPO 并将其链接到此容器" → 输入任意名称(例如IIS-BatchLogon-GPO
) - 创建
IIS-BatchLogon-GPO
编辑 - 计算机配置 → Windows 设置 → 安全设置 → 本地策略 → 用户权限分配 → 以批处理作业形式登录
- 双击打开对话框
CAMTEST\cam-svc
添加用户





关于 GPO 设置
要正确应用 GPO,您必须 gpupdate /force
运行此命令非常重要。这将确保 GPO 设置立即生效。特别是,当授予“以批处理作业登录”权限时,该策略可能会稍后生效。 w3wp.exe
这可能会导致启动失败。