AD FS 疑難排解 - 迴圈偵測
當信賴憑證者持續拒絕有效的安全性權杖並重新導向回 AD FS 時,就會在 AD FS 中執行迴圈。
迴圈偵測 Cookie
為了防止這種情況發生,AD FS 已實作所謂的迴圈偵測 Cookie。 根據預設,AD FS 會將 Cookie 寫入至名為 MSISLoopDetectionCookie 的 Web 被動用戶端。 此 Cookie 會保存時間戳記值和一些權杖發行的值。 這可讓 AD FS 追蹤用戶端在特定時間範圍內瀏覽同盟服務的頻率和次數。
如果被動用戶端在 20 秒內瀏覽同盟服務五 (5) 次,AD FS 會擲回下列錯誤:
MSIS7042:同一個用戶端瀏覽器工作階段在過去 '{1}' 秒內已提出 '{0}' 要求。 如需詳細資訊,請連絡您的系統管理員。
進入無限迴圈通常是因為信賴憑證者應用程式未成功取用 AD FS 所簽發的權杖而造成,而且應用程式會重複將被動用戶端傳回 AD FS,以重複方式傳回新的權杖。 AD FS 每次都會發出被動用戶端新的權杖,只要在 20 秒內不超過 5 個要求即可。
調整迴圈偵測 Cookie
您可以使用 PowerShell 來變更發行的權杖數目和時間範圍值。
Set-AdfsProperties -LoopDetectionMaximumTokensIssuedInterval 5 -LoopDetectionTimeIntervalInSeconds 20
LoopDetectionMaximumTokensIssuedInterval 的最小值為 1。
LoopDetectionTimeIntervalInSeconds 的最小值為 5。
當您執行效能測試時,您也可以停用迴圈偵測。
Set-AdfsProperties -EnableLoopDetection $false
重要
不建議永久停用迴圈偵測,因為這可防止使用者進入無限迴圈狀態。