Tổng quan
以下の記事でL4ロードバランサー + SSL終端環境で、IISにおける統合Windows認証(Integrated Windows Authentication, IWA)を構成する方法を解説しました。

この方法を構成する際にSPN(Service Principal Name)の設定ミスや重複により認証が失敗するケースが多々あります。
本記事では、SPNの登録や必要な作業を網羅的に解説します。
本記事での構成例
[Client Browser]
|
| HTTPS Access
v
[L4 Load Balancer (TCP 443)]
| |
v v
[Server1 (IIS)] [Server2 (IIS)]
- FQDN:
sso.chat-messenger.com - IISのホスト名:
Server1,Server2 - 共有サービスアカウント:
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登録すると、次のようなエラーが発生:
Duplicate SPN found, aborting operation.
解決方法:SPNを共有サービスアカウントに登録
複数ホストで同一FQDNを使う場合、SPNは共有サービスアカウントに1つだけ登録する必要があります。
共有サービスアカウントの作成
IIS のアプリケーションプールで動作させるサービスアカウントは、ドメインユーザーであれば可能ですが(Domain Users に属していればOK)、通常ユーザーとサービスアカウントを分離し、誤操作やパスワードポリシーの適用範囲を明確にするため、OU = Tài khoản dịch vụ Như thế này, OU Người dùng Để phân biệt nó với bộ điều khiển miền Active Directory,dịch vụ camera Hãy tạo ra nó.

Đăng ký SPN bằng tài khoản dịch vụ của bạn.
Chúng tôi sẽ đăng ký SPN bằng tài khoản dịch vụ đã tạo ở trên.
setspn -S HTTP/sso.chat-messenger.com CAMTEST\cam-svc
Bất kỳ thiết bị nào được kết nối với miền đều được chấp nhận. Tuy nhiên, cần có quyền quản trị viên miền.
• SPN cũng được sử dụng trong giao tiếp HTTPS.HTTP/tên máy chủBạn phải đăng ký theo mẫu này.
IISアプリケーションプールの設定
Server1, Server2 両サーバのアプリケーションプールの実行ユーザーを、作成したサービスアカウント CAMTEST\cam-svc に設定

IISマネージャーの「構成エディター」
IISアプリケーションプールをサービスアカウントに変更し、Windows認証を正しくKerberosで動作させるためには、IISマネージャーの「構成エディター」機能で次の設定を行う必要があります:
system.webServer/security/authentication/windowsAuthenticationセクションuseAppPoolCredentialsをTrueに設定useKernelModeをFalseに設定

共有サービスアカウントに「バッチ ジョブとしてログオン」権限の設定
アプリケーションプールは Web リクエストに応じて w3wp.exe(ワーカープロセス)を起動する。この際、共有サービスアカウントで実行する場合、「バッチ ジョブとしてログオン」権限がないとプロセスの起動が拒否され、HTTP 503 エラーになるため、. 共有サービスアカウントに「バッチ ジョブとしてログオン」権限の設定(GPOベース)が必要です。
以降の設定は各IIS端末のローカルセキュリティポリシーでも制御可能ですが、Active Directory ドメインコントローラー上のGPO(グループポリシーオブジェクト)で、組織ポリシーで制限が掛かっている場合があります。 その場合は GPO 自体で制御が必要で、その方法を解説しています。
OU=ServiceAccounts に GPO をリンクする手順
Tài khoản dịch vụCAMTEST\cam-svcをOU = Tài khoản dịch vụに作成した場合、
このOUにグループポリシー(例:IIS-BatchLogon-GPO)をリンクしなければ、dịch vụ cameraにポリシーが適用されません。GPOは「どのOUにリンクされているか」によって適用対象が決まるため、アカウントの存在場所とGPOのリンク先を一致させることが重要です。
gpmc.mscを実行し、「グループポリシー管理エディタ」を起動- 左ペインで
camtest.com/ServiceAccountsOU を右クリック → 「このドメインに GPO を作成し、このコンテナーにリンクする」→ 任意の名前を入力(例IIS-BatchLogon-GPO) - 作成した
IIS-BatchLogon-GPOで編集 - コンピュータの構成 → Windows の設定 → セキュリティの設定 → ローカル ポリシー → ユーザー権利の割り当て→ バッチ ジョブとしてログオン(Log on as a batch job)
- ダブルクリックしてダイアログを開き、
CAMTEST\cam-svcユーザを追加





GPO設定の反映について
GPOの適用を正しく反映させるには、対象の IIS サーバ上で gpupdate /force を実行することが重要です。これにより、GPOの設定が即座に有効になります。特に「バッチ ジョブとしてログオン」権限を付与する際には、ポリシーの反映が遅れると w3wp.exe の起動失敗につながることがあります。
