次の方法で共有


AD FS のトラブルシューティング: ループ検出

Active Directory フェデレーションサービス (AD FS) でのループ状態は、依頼先が有効なセキュリティ トークンを連続的に拒否し、AD FS にリダイレクトする際に発生します。

この問題が発生するのを防ぐために、AD FS はループ検出 Cookie を実装しました。 既定では、AD FS は MSISLoopDetectionCookie という名前の Web パッシブ クライアントに Cookie を書き込みます。 この Cookie は、タイムスタンプ値と、発行されたトークンの数の値を保持します。 この情報により、AD FS は、特定の期間にクライアントがフェデレーション サービスにアクセスした頻度と回数を追跡できます。

パッシブ クライアントが 20 秒以内に 5 回トークンのフェデレーション サービスにアクセスすると、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

重要

ユーザーが無限ループ状態に入らないようにするため、ループ検出を永続的に無効にしないでください。