您不可不知的 SharePoint 2010 宣告驗證重要知識 - 需要嚴謹的工作階段
英文原文已於 2011 年 10 月 28 日星期五發佈
大家好,我想要跟大家分享我在使用宣告驗證時,同樣遇到的令人苦惱的異常情形。接著,我將在本篇文章中仔細說明這種基礎層面的部署,以免大家遇到相同的情況。
簡單地說,如果您是使用宣告驗證,那麼請務必使用負載平衡解決方案中的相關性。TechNet 雖有相關說明,但僅屬於附註說明,並非較具說服力的形式。您可在 https://technet.microsoft.com/zh-tw/library/cc288475.aspx 中找到該文章,其內容為:
附註:如果 SharePoint Foundation 2010 伺服陣列中有多部設定負載平衡的網頁伺服器,而您在其中使用 SAML 權杖型驗證搭配 AD FS,這可能會影響用戶端網頁檢視效能及功能。當 AD FS 提供驗證權杖給用戶端時,該權杖便會提交至 SharePoint Foundation 2010 供每個權限受到限制的頁面元素使用。如果負載平衡解決方案並未使用相關性,每個受到保護的元素便需向多個 SharePoint Foundation 2010 伺服器驗證,如此可能會導致權杖遭拒。一旦權杖遭拒,SharePoint Foundation 2010 會將用戶端重新導向,回到 AD FS 伺服器重新驗證。發生此情況之後,AD FS 伺服器可能會拒絕在短時間內發出的多個要求。此行為是原本的設計,這是為了免遭拒絕服務攻擊。如果對效能發生負面影響,或是未能完整載入頁面,請試著將網路負載平衡設定為單一相關性,如此可將對 SAML 權杖的要求隔離在單一網頁伺服器上。
之所以在本篇文章中特別提出,就是要呼籲各位不要過於在意這項附註說明。我在以上附註說明中設定為斜體的文字,即可證明其不構成正當理由的原因 (或許我應該將這些字設定為粗體)。如果您並未使用相關性,就會發生以下問題:
- 系統可能會將您隨機重新導向至登入頁面。
- 您最後可能會遇到驗證迴圈,讓 ADFS 如同附註說明所述,因為查覺到拒絕服務的攻擊 (DOS) 而停止要求。
- 查看活動的記錄時,SharePoint 可能會將您的 Fedauth Cookie 設定為到期的值,然後再次向 ADFS 發出要求,如此一來,除了 ADFS 可能不會向您發出非到期的 Cookie 之外,也可能使 SharePoint 查看並將其轉換成到期的 Cookie,其原因仍舊不明。這就是造成以上 DOS 循環的主要原因。現在回想一下,在過去遇到此情況的人不多,我想造成這種問題的罪魁禍首可能就是因為缺乏嚴謹的工作階段。
簡而言之,縱使繼續討論這項問題,也不會得到任何結論,如果您打算使用 SharePoint 2010 宣告驗證的話,請務必使用負載平衡器的相關性!
這是翻譯後的部落格文章。英文原文請參閱 Make Sure You Know This About SharePoint 2010 Claims Authentication - Sticky Sessions Are REQUIRED