AD FS 문제 해결 - 통합 Windows 인증
통합 Windows 인증을 통해 사용자는 Windows 자격 증명으로 로그인하고 Kerberos 또는 NTLM을 사용하여 Single Sign-On을 이용할 수 있습니다.
Windows 통합 인증 실패 이유
Windows 통합 인증 실패에는 세 가지 주요 이유가 있습니다. 다음과 같습니다. - 잘못된 SPN(서비스 사용자 이름) 구성 - 채널 바인딩 토큰 - Internet Explorer 구성
잘못된 SPN 구성
SPN(서비스 사용자 이름)은 서비스 인스턴스의 고유 식별자입니다. SPN은 Kerberos 인증에서 서비스 인스턴스를 서비스 로그온 계정과 연결하는 데 사용됩니다. 이로써 클라이언트 애플리케이션은 서비스 주체를 통해 클라이언트에 계정이 없는 경우에도 서비스가 계정을 인증하도록 요청합니다.
SPN을 AD FS와 함께 사용하는 방법의 예는 다음과 같습니다.
- 웹 브라우저가 Active Directory를 쿼리하여 sts.contoso.com을 실행 중인 서비스 계정을 확인합니다.
- Active Directory는 AD FS 서비스 계정임을 브라우저에 알립니다.
- 브라우저는 AD FS 서비스 계정에 대한 Kerberos 티켓을 가져옵니다.
AD FS 서비스 계정에 잘못 구성되었거나 잘못된 SPN이 있는 경우 이로 인해 문제가 발생할 수 있습니다. 네트워크 추적을 살펴보면 KRB Error: KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN과 같은 오류가 표시될 수 있습니다.
네트워크 추적(예: Wireshark)을 사용하여 브라우저에서 확인하려는 SPN을 알아본 다음 명령줄 도구인 setspn - Q <spn>을 통해 해당 SPN에서 조회를 수행할 수 있습니다. 찾을 수 없거나 AD FS 서비스 계정 이외의 다른 계정에 할당될 수 있습니다.
AD FS 서비스 계정의 속성을 확인하여 SPN을 확인할 수 있습니다.
채널 바인딩 토큰
현재는 클라이언트 애플리케이션이 Kerberos, 다이제스트 또는 NTLM(HTTPS 사용)을 통해 서버에 인증할 때 TLS(전송 수준 보안) 채널이 먼저 설정되며 이 채널을 사용해 인증이 진행됩니다.
채널 바인딩 토큰은 TLS로 보호되는 외부 채널의 속성으로, 클라이언트가 인증한 내부 채널을 통한 대화에 외부 채널을 바인딩할 때 사용합니다.
중간자(man-in-the-middle) 공격이 발생하고 SSL 트래픽을 암호 해독하고 다시 암호화하는 경우 키는 일치하지 않습니다. AD FS는 웹 브라우저와 그 자체에 무언가가 있다고 판단합니다. 이로 인해 Kerberos 인증이 실패하고 사용자에게 SSO 환경 대신 401 대화 상자가 표시됩니다.
이 오류의 원인은 다음과 같습니다.
- 브라우저와 AD FS 사이에 있는 모든 항목
- Fiddler
- SSL 브리징을 수행하는 역방향 프록시
기본적으로 AD FS는 이 집합을 '허용'으로 설정합니다. Set-ADFSProperties -ExtendedProtectionTokenCheck None
PowerShell cmdlet을 사용하여 이 설정을 변경할 수 있습니다.
이에 대한 자세한 내용은 AD FS의 보안 계획 및 배포를 위한 모범 사례를 참조하세요.
Internet Explorer 구성
참고 항목
Chrome을 사용하는 경우 WIA 지원 사용자 에이전트 목록에 추가합니다.
기본적으로 Internet Explorer는 다음과 같은 방식으로 동작합니다.
- Internet Explorer는 헤더에 NEGOTIATE라는 단어가 포함된 AD FS에서 401 응답을 받습니다.
- 그러면 웹 브라우저에 Kerberos 또는 NTLM 티켓을 가져와 AD FS로 다시 보내도록 지시합니다.
- 기본적으로 IE는 NEGOTIATE라는 단어가 헤더에 있는 경우 사용자 조작 없이 이 작업(SPNEGO)을 수행합니다. 인트라넷 사이트에 대해서만 작동합니다.
이 문제가 발생하지 않도록 방지할 수 있는 두 가지 주요 사항이 있습니다.
Windows 통합 인증 사용은 IE의 속성에서 확인되지 않습니다. 인터넷 옵션 -> 고급 -> 보안 아래에 있습니다.
보안 영역이 제대로 구성되지 않았습니다.
FQDN이 인트라넷 영역에 없습니다.
AD FS URL은 인트라넷 영역에 없습니다.