共用方式為


AD FS 疑難解答:迴圈偵測

當依賴方持續拒絕有效的安全性令牌並重新導向回 Active Directory 同盟服務(AD FS)時,AD FS 中就會發生迴圈。

為了避免發生此問題,AD FS 實作循環偵測 Cookie。 根據預設,AD FS 會將 Cookie 寫入名為 MSISLoopDetectionCookie的 Web 被動用戶端。 此 Cookie 會保存時間戳值,以及核發之令牌數目的值。 這項資訊可讓AD FS追蹤用戶端在特定時間範圍內流覽同盟服務的頻率和次數。

如果被動用戶端在 20 秒內存取同盟服務五次,AD FS 會發生以下錯誤:

MSIS7042: The same client browser session has made '{0}' requests in the last '{1}' seconds. Contact your administrator for details.

進入無限迴圈通常是因為受信應用程式未能成功取用由 AD FS 簽發的令牌。 然後,應用程式會重複地將被動用戶端傳回至 AD FS 以獲取新的令牌。 AD FS 每次都會向被動客戶端發出新的令牌,並在 20 秒內將請求限制為 5 次。

您可以使用 PowerShell 來變更所發行令牌數目和時間範圍值的值。

Set-AdfsProperties -LoopDetectionMaximumTokensIssuedInterval 5  -LoopDetectionTimeIntervalInSeconds 20

LoopDetectionMaximumTokensIssuedInterval 的最小值為 1。

LoopDetectionTimeIntervalInSeconds 的最小值為 5。

當您執行效能測試時,您也可以停用循環偵測。

Set-AdfsProperties -EnableLoopDetection $false

這很重要

請勿永久停用迴圈偵測,因為它可防止使用者進入無限循環狀態。