AD FS 문제 해결 - Fiddler - WS-Federation

AD FS and Windows Server Federation diagram

1단계 및 2단계

이것은 우리의 추적의 시작입니다. 이 프레임에는 다음이 표시됩니다.

Start of Fiddler trace

요청:

응답:

  • 응답은 HTTP 302(리디렉션)입니다. 응답 헤더의 전송 데이터는 (https://sts.contoso.com/adfs/ls)로 리디렉션할 위치를 보여 줍니다.
  • 리디렉션 URL에는 wa=wsignin 1.0이 포함되어 있으며, 이는 RP 애플리케이션이 WS-Federation 로그인 요청을 빌드하고 이를 AD FS의 /adfs/ls/ 엔드포인트로 전송했음을 알려줍니다. 이를 리디렉션 바인딩이라고합니다.

Transport data in the Response header

3단계 및 4단계

Continuation Fiddler trace

요청:

  • AD FS 서버에 대한 HTTP GET(sts.contoso.com)

응답:

  • 응답은 자격 증명에 대한 프롬프트입니다. 이는 양식 인증을 사용하고 있음을 나타냅니다.
  • 응답의 WebView를 클릭하면 자격 증명 프롬프트를 볼 수 있습니다.

Screenshot of the web view of the response showing the credentials prompt.

5단계 및 6단계

WebView tab of the prompt for credentials Prompt screen

요청:

  • 사용자 이름 및 암호가 있는 HTTP POST입니다.
  • 자격 증명을 제공합니다. 요청에서 원시 데이터를 보면 자격 증명을 볼 수 있습니다.

응답:

  • 응답이 발견되고 MSIAuth 암호화 쿠키가 만들어지고 반환됩니다. 클라이언트에서 생성한 SAML 어설션의 유효성을 검사하는 데 사용됩니다. 이를 "인증 쿠키"라고도 하며 AD FS가 Idp인 경우에만 존재합니다.

7단계 및 8단계

Screenshot of the of Fiddler trace showing the H T T P Get request and the response to that request.

요청:

  • 인증했으므로 AD FS 서버에 대한 또 다른 HTTP GET을 수행하고 인증 토큰을 제공합니다.

응답:

  • 응답은 HTTP OK입니다. 이는 AD FS가 제공된 자격 증명에 따라 사용자를 인증했음을 의미합니다.
  • 또한 3개의 쿠키를 클라이언트로 다시 설정합니다.
    • MSISAuthenticated에는 클라이언트가 인증되었을 때의 base64로 인코딩된 타임스탬프 값이 포함되어 있습니다.
    • MSISLoopDetectionCookie는 AD FS 무한 루프 검색 메커니즘에서 페더레이션 서버로의 무한 리디렉션 루프를 종료한 클라이언트를 중지하는 데 사용됩니다. 쿠키 데이터는 base64로 인코딩된 타임스탬프입니다.
    • MSISSignout은 IdP 및 SSO 세션을 위해 방문한 모든 RP를 추적하는 데 사용됩니다. 이 쿠키는 WS-Federation 로그아웃이 호출될 때 활용됩니다. base64 디코더를 사용하여 이 쿠키의 내용을 볼 수 있습니다.

9단계 및 10단계

Screenshot of the of Fiddler trace showing the H T T P Post request and the response to that request.

요청:

  • HTTP POST

응답:

  • 응답이 발견되었습니다.

11단계 및 12단계

Finalization of Fiddler trace

요청:

  • HTTP GET

응답:

  • 응답이 정상입니다.

다음 단계