다음을 통해 공유


AD FS 문제 해결 - Windows 통합 인증

통합 Windows 인증 사용하면 사용자가 Kerberos 또는 NTLM을 사용하여 Windows 자격 증명으로 로그인하고 SSO(Single Sign-On)를 경험할 수 있습니다.

Windows 통합 인증 실패 이유

Windows 통합 인증이 실패하는 세 가지 기본 이유가 있습니다. 다음과 같습니다. - SPN(서비스 사용자 이름) 잘못된 구성 - 채널 바인딩 토큰 - Internet Explorer 구성

SPN 잘못된 구성

SPN(서비스 사용자 이름)은 서비스 인스턴스의 고유 식별자입니다. SPN은 Kerberos 인증에서 서비스 인스턴스를 서비스 로그온 계정과 연결하는 데 사용됩니다. 이렇게 하면 클라이언트 애플리케이션에서 클라이언트에 계정 이름이 없더라도 서비스에서 계정을 인증하도록 요청할 수 있습니다.

SPN이 AD FS와 함께 사용되는 방법의 예는 다음과 같습니다.

  1. 웹 브라우저가 Active Directory를 쿼리하여 실행 중인 서비스 계정을 확인합니다 sts.contoso.com
  2. Active Directory는 AD FS 서비스 계정임을 브라우저에 알립니다.
  3. 브라우저는 AD FS 서비스 계정에 대한 Kerberos 티켓을 가져옵니다.

AD FS 서비스 계정에 잘못 구성되었거나 잘못된 SPN이 있는 경우 이로 인해 문제가 발생할 수 있습니다. 네트워크 추적을 살펴보면 KRB 오류: KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN 같은 오류가 표시 될 수 있습니다.

네트워크 추적(예: Wireshark)을 사용하여 브라우저에서 확인하려는 SPN을 확인한 다음 명령줄 도구인 setspn - Q <spn>을 사용하여 해당 SPN에서 조회를 수행할 수 있습니다. 찾을 수 없거나 AD FS 서비스 계정 이외의 다른 계정에 할당될 수 있습니다.

Screenshot of the Command Prompt window.

AD FS 서비스 계정의 속성을 확인하여 SPN을 확인할 수 있습니다.

Screenshot of the Attribute Editor tab of the A D F S Service Account Properties dialog box showing the Service Principal Name value called out.

채널 바인딩 토큰

현재는 클라이언트 애플리케이션이 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는 다음과 같은 방식으로 동작합니다.

  1. Internet Explorer는 헤더에 NEGOTIATE라는 단어가 포함된 AD FS에서 401 응답을 받습니다.
  2. 그러면 웹 브라우저에 Kerberos 또는 NTLM 티켓을 가져와 AD FS로 다시 보내도록 지시합니다.
  3. 기본적으로 IE는 NEGOTIATE라는 단어가 헤더에 있는 경우 사용자 조작 없이 SPNEGO(이 작업을 수행합니다). 인트라넷 사이트에 대해서만 작동합니다.

이런 일이 일어나는 것을 막을 수 있는 두 가지 기본 가지가 있습니다.

  • Windows 통합 인증 사용은 IE의 속성에 검사 없습니다. 인터넷 옵션 - 고급 ->> 보안 아래에 있습니다.

    Screenshot of the Advanced tab of the Internet Options dialog box with the Enable Integrated Windows Authentication option called out.

  • 보안 영역이 제대로 구성되지 않음

    • FQDN이 인트라넷 영역에 없습니다.

    • AD FS URL은 인트라넷 영역에 없습니다.

      Screenshot of the Local intranet window in front of the Internet Options dialog box.

다음 단계