개요
다음 기사에서는 L4 로드 밸런서 + SSL 종단 환경에서 IIS에서 통합 Windows 인증(Integrated Windows Authentication, IWA)을 구성하는 방법을 설명했습니다.

이 방법을 구성할 때 SPN(Service Principal Name)의 설정 실수나 중복에 의해 인증이 실패하는 경우가 많이 있습니다.
이 기사에서는 SPN의 등록과 필요한 작업을 포괄적으로 설명합니다.
이 기사의 구성 예
[Client Browser] | | HTTPS Access v [L4 Load Balancer (TCP 443)] | | vv [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은 공유 서비스 계정에 하나만 등록해야 합니다.
공유 서비스 계정 만들기
IIS 응용 프로그램 풀에서 작동하는 서비스 계정은 도메인 사용자이면 가능하지만 (Domain Users에 속한 경우 OK) 일반적으로 사용자와 서비스 계정을 분리하고 오작동 및 암호 정책의 적용 범위를 명확히하기 위해,OU=ServiceAccounts
처럼 OU 사용자
구별 Active Directory 도메인 컨트롤러에서,cam-svc
을 만듭니다.

서비스 계정으로 SPN 등록
위에서 만든 서비스 계정으로 SPN 등록을 수행합니다.
setspn -S HTTP/sso.chat-messenger.com CAMTEST\cam-svc
・도메인에 참가하고 있는 임의의 단말에서 OK.단, 도메인 관리자 권한이 필요합니다.
· HTTPS 통신에서도 SPN은HTTP/호스트 이름
형식으로 등록해야합니다.
IIS 애플리케이션 풀 구성
Server1
, Server2
두 서버의 응용 프로그램 풀 실행 사용자를 만든 서비스 계정 CAMTEST\cam-svc
로 설정

IIS 관리자의 "구성 편집기"
IIS 응용 프로그램 풀을 서비스 계정으로 변경하고 Windows 인증이 Kerberos에서 올바르게 작동하도록 하려면 IIS 관리자의 구성 편집기 기능에서 다음 설정을 수행해야 합니다.
system.webServer/security/authentication/windowsAuthentication
섹션useAppPoolCredentials
을True
로 설정useKernelMode
을거짓
로 설정

공유 서비스 계정에 일괄 작업으로 로그온 권한 설정
애플리케이션 풀은 웹 요청에 따라 w3wp.exe
(작업자 프로세스)를 시작합니다.이 때 공유 서비스 계정으로 실행할 때 "일괄 작업으로 로그온" 권한이 없으면 프로세스가 시작되지 않고 HTTP 503 오류가 발생합니다. 공유 서비스 계정에 "일괄 작업으로 로그온" 권한 설정(GPO 기반)이 필요합니다.
이후의 설정은 각 IIS 단말의 로컬 보안 정책에서도 제어 가능합니다만, Active Directory 도메인 컨트롤러상의 GPO(그룹 정책 오브젝트)로, 조직 정책으로 제한이 걸려 있는 경우가 있습니다.그 경우는 GPO 자체로 제어가 필요해, 그 방법을 해설하고 있습니다.
OU = ServiceAccounts에 GPO를 연결하는 단계
서비스 계정CAMTEST\cam-svc
을OU=ServiceAccounts
작성한 경우,
이 OU에 그룹 정책(예: IIS-BatchLogon-GPO)을 연결하지 않으면,cam-svc
에 정책이 적용되지 않습니다. GPO는 '어떤 OU에 연결되어 있는지'에 따라 적용 대상이 결정되므로 계정의 위치와 GPO가 연결되는 위치를 일치시키는 것이 중요합니다.
gpmc.msc
를 실행하여 "그룹 정책 관리 편집기"를 시작합니다.- 왼쪽 창에서
camtest.com/ServiceAccounts
OU를 마우스 오른쪽 버튼으로 클릭 →이 도메인에 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
시작 실패로 이어질 수 있습니다.