AD FS 문제 해결 - Windows 통합 인증
통합 Windows 인증 사용하면 사용자가 Kerberos 또는 NTLM을 사용하여 Windows 자격 증명으로 로그인하고 SSO(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 오류: 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는 이 집합을 "허용"으로 설정합니다. PowerShell cmdlet을 사용하여 이 설정을 변경할 수 있습니다. Set-ADFSProperties -ExtendedProtectionTokenCheck None
이에 대한 자세한 내용은 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은 인트라넷 영역에 없습니다.