Résolution des problèmes liés à AD FS - Détection de boucles

Une boucle dans AD FS se produit lorsqu’une partie de confiance rejette continuellement un jeton de sécurité valide et redirige vers AD FS.

Pour éviter cela, AD FS a implémenté ce qu’on appelle un cookie de détection de boucle. Par défaut, AD FS écrit un cookie sur les clients web passifs nommé MSISLoopDetectionCookie. Ce cookie contient une valeur d’horodatage et un certain nombre de jetons émis. Cela permet à AD FS de suivre la fréquence et le nombre de fois qu’un client a visité le service de fédération dans un intervalle de temps spécifique.

Si un client passif visite le service de fédération pour un jeton cinq (5) fois dans les 20 secondes, AD FS génère l’erreur suivante :

MSIS7042 : La même session de navigateur client a effectué « {0} » requêtes au cours des « {1} » dernières secondes. Contactez votre administrateur pour obtenir des informations complémentaires.

L’entrée dans des boucles infinies est souvent due à une application de partie de confiance qui se comporte mal et qui ne consomme pas correctement le jeton émis par AD FS et au fait que l’application renvoie le client passif à AD FS, à plusieurs reprises, pour un nouveau jeton. AD FS émettra un nouveau jeton au client passif à chaque fois, tant qu’ils ne dépassent pas 5 requêtes dans les 20 secondes.

Vous pouvez utiliser PowerShell pour modifier le nombre de jetons émis et la valeur d’intervalle de temps.

Set-AdfsProperties -LoopDetectionMaximumTokensIssuedInterval 5  -LoopDetectionTimeIntervalInSeconds 20

La valeur minimum pour LoopDetectionMaximumTokensIssuedInterval est 1.

La valeur minimum pour LoopDetectionTimeIntervalInSeconds est 5.

Vous pouvez également désactiver la détection de boucle lorsque vous effectuez des tests de performances.

Set-AdfsProperties -EnableLoopDetection $false

Important

Il n’est pas recommandé de désactiver définitivement la détection des boucles, car cela empêche les utilisateurs d’entrer dans des états de boucle infinis.

Étapes suivantes