透過 ACS 與 Facebook 使用同盟時,疑難排解空白的回應頁面
英文原文已於 2011 年 7 月 12 日星期二發佈
在進行各種同盟案例時,我已經提出此案例許多次。這些案例永遠都需要使用 Facebook 做為要登入的 oAuth 來源,或需要使用 Azure 的 AppFabric ACS 以做為同盟身分識別提供者。一般行為是指您透過瀏覽器互動或是對 ACS 建立 POST 以撰寫程式。不論是哪一種情況,回應都會出現錯誤,但是此錯誤通常是非描述性的。例如,使用 Facebook 的 OAuth 功能時,會將頁面重新導向至其網站以進行登入,您輸入認證,然後會重新導向回您的應用程式。不過當有問題時,在大部分的情況下,瀏覽器只會顯示您得到 400 回應且伺服器發生錯誤。就只是這樣。當以程式設計方式張貼至 ACS 時也是一樣:有問題時,您通常會得到 400 類型回應,而且它通常會顯示「找不到頁面」或類似的狀況。這樣有幫到您嗎?並沒有!
可悲的是,我發現當您看到這些頁面時,最好的解決方案就是使用 Fiddler (www.fiddler2.com (可能為英文網頁))。您將會在 Fiddler 回應中找到比瀏覽器所顯示多許多的詳細資料。例如,透過其中一個 ACS 問題,我在 Fiddler 中看到回應包括的詳細資料說明 POST 訊息的格式不正確。那的確比「找不到頁面」的回應有用多了,「找不到頁面」根本讓人無從開始。或是在使用 Facebook 時,我們發現在 Fiddler 中,回應實際上說明您重新導向回無效或未受信任的 URI。是的,那比只給我 400 錯誤以及顯示錯誤要求還要有用許多。
這就是重點 - 當您進入這些明顯的死胡同時,請啟動 Fiddler 並查看回應的詳細資訊,以嘗試和尋找對發生情況有用的詳細資訊。
這是翻譯後的部落格文章。英文原文請參閱 Troubleshooting Blank Response Pages When Using Federation with ACS and Facebook