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

AD FS のループは、依存パーティが有効なセキュリティ トークンを繰り返し拒否し、AD FS にリダイレクトするという現象です。

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

パッシブ クライアントがトークンを求めてフェデレーション サービスに 20 秒間に 5 回アクセスすると、AD FS から次のエラーがスローされます。

MSIS7042: 同じブラウザー セッションにより過去 '{1}' 秒間に要求が '{0}' 回行われました。 詳しくは、管理者に問い合わせてください。

無限のループに入ることはしばしば、依存パーティ アプリケーションが誤作動し、AD FS によって発行されたトークンが正常に利用されず、パッシブ クライアントが AD FS に再送され、新しいトークンが要求されることで発生します。 AD FS では、20 秒間に 5 回という制限付きで、パッシブ クライアントの要求に対して新しいトークンを毎回発行します。

PowerShell を利用し、トークン発行数と期間値を変更できます。

Set-AdfsProperties -LoopDetectionMaximumTokensIssuedInterval 5  -LoopDetectionTimeIntervalInSeconds 20

LoopDetectionMaximumTokensIssuedInterval の最小値は 1 です。

LoopDetectionTimeIntervalInSeconds の最小値は 5 です。

パフォーマンス テスト時もループ検出を無効にできます。

Set-AdfsProperties -EnableLoopDetection $false

重要

ループ検出には無限ループ状態にユーザーが入るのを防ぐという目的があるため、これを常時無効にすることは推奨されません。

次の手順