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

AD FS 및 Windows Server 페더레이션 다이어그램

1단계 및 2단계

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

Fiddler 추적의 시작

요청:

응답:

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

응답 헤더의 데이터 전송

3단계 및 4단계

연속 Fiddler 추적

요청:

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

응답:

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

자격 증명 프롬프트를 보여 주는 응답의 웹 보기 스크린샷

5단계 및 6단계

자격 증명 프롬프트 프롬프트 화면의 WebView 탭

요청:

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

응답:

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

7단계 및 8단계

H T TP 가져오기 요청 및 해당 요청에 대한 응답을 보여 주는 Fiddler 추적의 스크린샷

요청:

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

응답:

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

9단계 및 10단계

H T T P Post 요청 및 해당 요청에 대한 응답을 보여 주는 Fiddler 추적의 스크린샷

요청:

  • HTTP POST

응답:

  • 응답이 Found입니다.

11단계 및 12단계

Fiddler 추적 완료

요청:

  • HTTP GET

응답:

  • 응답이 정상입니다.

다음 단계