SAML 및 SharePoint에 Fiddler를 사용하여 세 번의 인증 프롬프트를 통과하는 방법

최초 문서 게시일: 2012년 12월 3일 월요일

Eric Lawrence가 Fiddler에 대한 그의 블로그 게시물에서 이 주제에 대해 다루고 있지만, 구체적인 목적을 가지고 보지 않는다면 유용하게 활용하기 힘들므로 여기서 SharePoint에 적용해 보도록 하겠습니다. SharePoint 팀에서는 웹 사이트에 대한 문제가 있을 때 문제를 파악하기 위해 Fiddler를 사용하라고 권장하는 경우가 많습니다. 특히 SAML 인증의 경우 Fiddler를 사용하면 인증 문제를 파악하는 데 도움이 될 수 있습니다. 그러나 SharePoint 2010에서 인증 바인딩 처리 방식을 변경함에 따라 Fiddler를 그대로 사용하는 것이 거의 불가능해졌습니다. 즉, Fiddler를 실행하는 상태에서 SAML로 SharePoint 사이트에 인증하려고 하면 자격 증명을 입력하라는 프롬프트가 세 번 나타나고 그 후에 IIS에 오류 페이지가 표시됩니다.

이 문제를 해결하려면 Fiddler에 특정 스크립트를 추가해야 합니다. 이렇게 하려면 Fiddler(저는 버전 4.4.1.1을 사용하고 있으며 버전이 자주 바뀌므로 UI가 다소 차이 날 수 있습니다). 규칙...규칙 사용자 지정 메뉴로 이동하고 스크립트를 아래로 스크롤하여 OnPeekAtResponseHeaders 함수를 찾습니다. 이 함수에 짧은 코드를 추가하면 이 인증 문제를 해결할 수 있습니다. 먼저, 추가할 코드는 다음과 같습니다.

if (oSession.isHTTPS && oSession.responseCode == 401)
{
// Windows 로그인 자격 증명 이외의 자격 증명을 사용하려면
// X-AutoAuth를 "domain\\username:password"로 변경합니다.
oSession["X-AutoAuth"] = "default";
oSession["ui-backcolor"] = "pink";
}

이 코드를 추가하면 인증 요청에 Windows 자격 증명이 사용됩니다. 또한 인증 프롬프트의 배경색이 분홍색 Fiddler 창으로 바뀌는데 물론 이 부분을 변경하거나 제거해도 됩니다. 인증 시 다른 종류의 자격 증명을 사용하려면 스크립트 주석에 설명한 대로 "default" 대신 domain\\username을 입력하면 됩니다. 이 방법은 완벽하지는 않지만 최소한 ADFS에 대해 작동하며 Fiddler 추적을 아예 사용하지 않는 것보다는 훨씬 도움이 됩니다.

이 방법에 대한 자세한 내용은 Eric의 게시물(https://blogs.msdn.com/b/fiddler/archive/2011/09/04/fiddler-http-401-authentication-workaround-to-support-channel-binding-tokens-removing-endless-prompts.aspx)을 참조하십시오.

이 문서는 번역된 블로그 게시물입니다. 원본 문서는 Using Fiddler With SAML and SharePoint to Get Past the Three Authentication Prompts를 참조하십시오.