Поделиться через


Устранение неполадок AD FS — обнаружение цикла

Циклирование в AD FS происходит, когда проверяющая сторона постоянно отклоняет допустимый маркер безопасности и перенаправляет обратно в AD FS.

Чтобы предотвратить это, AD FS реализовала то, что называется файлом cookie обнаружения циклов. По умолчанию AD FS записывает файл cookie в веб-пассивные клиенты с именем MSISLoopDetectionCookie. Этот файл cookie содержит значение метки времени и ряд выданных маркеров. Это позволяет AD FS отслеживать частоту и количество посещений клиентом службы федерации в течение определенного интервала времени.

Если пассивный клиент посещает службу федерации для маркера пять (5) раз в течение 20 секунд, AD FS выдает следующую ошибку:

MSIS7042: тот же сеанс браузера клиента сделал{0} запросы за последние{1} секунды. Обратитесь к администратору за дополнительной информацией.

Вхождения в бесконечные циклы часто вызваны неправильным поведением приложения проверяющей стороны, которое не успешно использует маркер, выданный AD FS, и приложение отправляет пассивный клиент обратно в AD FS, неоднократно для нового маркера. AD FS будет выдавать пассивный клиент новый маркер каждый раз, пока они не превышают 5 запросов в течение 20 секунд.

PowerShell можно использовать для изменения количества выданных маркеров и значения интервала времени.

Set-AdfsProperties -LoopDetectionMaximumTokensIssuedInterval 5  -LoopDetectionTimeIntervalInSeconds 20

Минимальное значение для LoopDetectionMaximumTokensIssuedInterval равно 1.

Минимальное значение для LoopDetectionTimeIntervalInSeconds равно 5.

При тестировании производительности можно также отключить обнаружение циклов.

Set-AdfsProperties -EnableLoopDetection $false

Внимание

Не рекомендуется окончательно отключить обнаружение циклов, так как это препятствует пользователям вводить бесконечные состояния цикла.

Next Steps