다음은 Windows Server 2012 R2를 실행하는 IIS 웹 사이트에서 투명 SSO(Single Sign-On) Kerberos 도메인 사용자 인증을 구성하는 방법에 대한 단계별 가이드입니다.
웹 서버에서 IIS 관리자를 시작하고 필요한 웹사이트를 선택한 다음 인증으로 이동합니다. 부분. 보시다시피 익명 인증만 기본적으로 활성화되어 있습니다. 비활성화하고 Windows 인증 활성화 ( 우선 IIS는 항상 익명 인증을 시도합니다.).
Windows 인증에 사용할 수 있는 제공자 목록을 엽니다(제공자 ). 기본적으로 두 제공업체를 사용할 수 있습니다. 협상 및 NTLM . Negotiate는 Kerberos를 첫 번째 인증 방법으로 사용하는 컨테이너이며 인증에 실패하면 NTLM이 사용됩니다. 협상해야 합니다. 공급자 목록에서 첫 번째로 표시됩니다.
다음 단계에는 서비스 사용자 이름(SPN) 등록이 포함됩니다. 사용자가 액세스할 웹사이트 이름에 대한 항목. IIS 웹 사이트가 위치한 서버 이름(https://server-name 또는 https://server-name.adatum.loc ), 추가 SPN 항목을 만들 필요가 없습니다(SPN 항목은 AD의 서버 계정에 이미 존재함). 웹 사이트 주소가 호스트 이름과 다르거나 로드 밸런싱을 사용하여 웹 팜을 구축하는 경우 추가 SPN 항목을 서버 또는 사용자 계정에 연결해야 합니다.
IIS 서버 팜이 있다고 가정합니다. 이 경우 별도의 AD 계정을 만들고 SPN 항목을 바인딩하는 것이 좋습니다. 당사 웹사이트의 대상 애플리케이션 풀은 이 계정에서 시작됩니다.
도메인 계정 iis_service 만들기 . 이 개체에 대해 SPN 항목이 할당되지 않았는지 확인합니다(servicePrincipalName 속성이 비어 있음).
웹사이트가 https://webportal에서 응답해야 한다고 가정합니다. 및 https://webportal.adatum.loc . 서비스 계정의 SPN 속성에서 이러한 주소를 지정해야 합니다.
Setspn /s HTTP/webportal adatum\iis_service
Setspn /s HTTP/webportal.adatum.loc adatum\iis_service
따라서 사용자가 이러한 주소에 액세스하고 세션을 인증할 때 이 계정이 Kerberos 티켓을 해독하도록 허용합니다.
다음과 같이 계정의 SPN 설정을 확인할 수 있습니다.
setspn /l iis_service
setspn –x
다음 단계는 이전에 생성한 계정에서 시작하도록 IIS 응용 프로그램 풀을 구성하는 것입니다.
웹사이트의 애플리케이션 풀을 선택합니다(이 예에서는 DefaultAppPool).
고급 설정 열기 ID로 이동합니다.
ApplicationPoolIdentity에서 변경 adatum\iis_service로 .
그런 다음 IIS 관리자에서 웹사이트로 이동하여 구성 편집기를 선택합니다. .
드롭다운 메뉴에서 system.webServer> 보안> 인증> windowsAuthentication을 선택합니다.
useAppPoolCredentials 변경 참으로 .
따라서 IIS가 도메인 계정을 사용하여 클라이언트의 Kerberos 티켓을 해독할 수 있습니다.
다음 명령을 사용하여 IIS 재설정:
iisreset
모든 웹 팜 서버에서 동일하게 구성해야 합니다.
Kerberos 인증을 테스트해 보겠습니다. 그렇게 하려면 클라이언트의 브라우저에서 https://webportal.adatum.loc을 엽니다.
참고 . 제 경우에는 IE11에서 한번에 인증이 되지 않았습니다. 신뢰할 수 있는 웹사이트 목록에 주소를 추가하고 현재 사용자 이름과 비밀번호로 자동 로그온을 지정해야 했습니다. 사용자 인증 -> 로그온에서 Trusted Zones 사이트 설정에서.
Fiddler를 사용하여 HTTP 트래픽을 모니터링함으로써 웹사이트에서 Kerberos 인증이 사용되는지 확인할 수 있습니다(이 도구는 앞에서 언급했습니다).
Fiddler를 시작하고 브라우저에서 대상 웹사이트를 엽니다. 창 왼쪽에서 웹사이트 접속 라인을 찾습니다. 창의 오른쪽에 있는 Inspectors 탭으로 이동합니다. "승인 헤더(협상)에 Kerberos 티켓이 포함된 것으로 보입니다. "는 IIS 웹 사이트에서 Kerberos를 인증하는 데 사용되었음을 나타냅니다.