與 SAML 及 SharePoint 搭配使用 Fiddler 以通過三項驗證提示

英文原文已於 2012 年 12 月 3 日星期一發佈

Eric Lawrence 曾在他的一篇 Fiddler 部落格文章中提到本主題,但除非您知道你想要找的是什麼,不然,要找到他的文章可能會有些困難。所以,我打算在這裡補充 SharePoint 在這方面的轉折。我們常常告訴大家,當他們在架設網站時,如果碰到困難的話,可以使用 Fiddler 來了解到底發生了什麼事情。尤其是 SAML 驗證,它雖然可作為協助了解驗證問題的好工具,但問題是,我們在 2010 左右對驗證繫結的處理方式做了一些變更,讓我們不能直接將 SAML 驗證作為了解問題的工具。因此,如果您執行 Fiddler 並嘗試使用 SAML 針對 SharePoint 網站進行驗證,則系統會提示您三次,要求您輸入認證,然後,在 IIS 中就會顯示錯誤頁面。

若要解決問題,您必須將一些指令碼加入 Fiddler 中。要做到這點,請開啟 Fiddler (我使用的是 4.4.1.1 版 - 版本更新很頻繁,所以您的使用者介面可能會有些不同)。請前往 [規則]...[自訂規則] 功能表,將指令碼向下捲動,直到找到 OnPeekAtResponseHeaders function。在那裡,您可以加入一小段程式碼,以解決驗證問題。請先讓我由要加入的程式碼開始說起:

if (oSession.isHTTPS && oSession.responseCode == 401)
{
// 若您要使用 Windows 登入認證以外的其他認證,
// 請將 X-AutoAuth 設為 "domain\\username:password"
oSession["X-AutoAuth"] = "default";
oSession["ui-backcolor"] = "pink";
}

這裡要注意的是,它會嘗試將您的 Windows 認證用在驗證要求上。也會將驗證提示的背景色彩設為粉紅色以強調 Fiddler 視窗,不過,您當然可以變更或移除這個部分。如果您要在驗證時使用不同的認證,您可以插入 domain\\username 來代替 "default",如指令碼中所示。此做法並非十全十美,但至少它適用於 ADFS,而且比起無法進行任何 Fiddler 追蹤來講,是更為實用。

如需要更多關於本主題的詳細資訊,請前往 https://blogs.msdn.com/b/fiddler/archive/2011/09/04/fiddler-http-401-authentication-workaround-to-support-channel-binding-tokens-removing-endless-prompts.aspx 以參閱 Eric 的文章。

這是翻譯後的部落格文章。英文原文請參閱 Using Fiddler With SAML and SharePoint to Get Past the Three Authentication Prompts