概述
以下文章介紹如何在 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)時,出現下列錯誤:
發現重複的 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
部分使用應用程式集區憑證
的真的
設定為使用內核模式
的錯誤的
設定為

為共用服務帳戶設定「以批次作業形式登入」權限
應用程式集區響應網路請求。 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
這可能會導致啟動失敗。