MENU

L4 로드 밸런서 환경에서 IIS 통합 Windows 인증 성공을 위한 IIS 구성

목차

개요

다음 기사에서는 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 섹션
  • useAppPoolCredentialsTrue 로 설정
  • useKernelMode거짓 로 설정

도메인 컨트롤러에서 IIS가 실행 중이면 이 설정이 필요하지 않을 수 있습니다.

공유 서비스 계정에 일괄 작업으로 로그온 권한 설정

애플리케이션 풀은 웹 요청에 따라 w3wp.exe(작업자 프로세스)를 시작합니다. 이 때 공유 서비스 계정으로 실행하는 경우 "배치 작업으로 로그온" 권한이 없으면 프로세스 시작이 거부되고 HTTP 503 오류가 발생하기 때문에. 공유 서비스 계정에 "배치 작업으로 로그온" 권한 설정(GPO 기반)이 필요합니다.

다음 설정은 각 IIS 터미널의 로컬 보안 정책에서도 제어할 수 있지만 Active Directory 도메인 컨트롤러의 GPO(그룹 정책 개체)에서 조직 정책에 제한이 있을 수 있습니다. 이 경우 GPO 자체에서 제어가 필요하며 그 방법을 설명합니다.

도메인 컨트롤러에서 IIS가 실행 중이면 "배치 작업으로 로그온"이 필요하지 않을 수 있습니다.

OU = ServiceAccounts에 GPO를 연결하는 단계

서비스 계정CAMTEST\cam-svcOU=ServiceAccounts작성한 경우,
이 OU에 그룹 정책(예: IIS-BatchLogon-GPO)을 연결하지 않으면,cam-svc에 정책이 적용되지 않습니다. GPO는 '어떤 OU에 연결되어 있는지'에 따라 적용 대상이 결정되므로 계정의 위치와 GPO가 연결되는 위치를 일치시키는 것이 중요합니다.

  1. gpmc.msc 를 실행하여 "그룹 정책 관리 편집기"를 시작합니다.
  2. 왼쪽 창에서camtest.com/ServiceAccounts OU를 마우스 오른쪽 버튼으로 클릭 →이 도메인에 GPO를 만들고 이 컨테이너에 연결→ 모든 이름을 입력하십시오 (예IIS-BatchLogon-GPO
  3. 만든IIS-BatchLogon-GPO에서 편집
  4. 컴퓨터 구성 → Windows 설정 → 보안 설정 → 로컬 정책 → 사용자 권한 할당 → 일괄 작업으로 로그온(Log on as a batch job)
  5. 두 번 클릭하여 대화 상자를 열고CAMTEST\cam-svc 사용자 추가

GPO 설정 반영 정보

GPO 적용을 올바르게 반영하려면 대상 IIS 서버에서 gpupdate /force 실행하는 것이 중요합니다. 이렇게 하면 GPO 설정이 즉시 활성화됩니다. 특히 "일괄 작업으로 로그온"권한을 부여 할 때 정책 반영이 지연되면 w3wp.exe 시작 실패로 이어질 수 있습니다.

  • URL을(를) 확인했습니다!
목차