Устранение неполадок AD FS — обнаружение цикла
Циклирование в AD FS происходит, когда проверяющая сторона постоянно отклоняет допустимый маркер безопасности и перенаправляет обратно в AD FS.
Файл cookie обнаружения циклов
Чтобы предотвратить это, 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 секунд.
Настройка файла cookie обнаружения цикла
PowerShell можно использовать для изменения количества выданных маркеров и значения интервала времени.
Set-AdfsProperties -LoopDetectionMaximumTokensIssuedInterval 5 -LoopDetectionTimeIntervalInSeconds 20
Минимальное значение для LoopDetectionMaximumTokensIssuedInterval равно 1.
Минимальное значение для LoopDetectionTimeIntervalInSeconds равно 5.
При тестировании производительности можно также отключить обнаружение циклов.
Set-AdfsProperties -EnableLoopDetection $false
Внимание
Не рекомендуется окончательно отключить обнаружение циклов, так как это препятствует пользователям вводить бесконечные состояния цикла.