다음은 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
도움말 . 동일한 SPN이 다른 도메인 항목에서 사용되는 경우 Kerberos가 올바르게 작동하지 않습니다. 다음 명령을 사용하여 도메인에 중복 SPN이 없는지 확인하십시오.
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를 인증하는 데 사용되었음을 나타냅니다.