Comparteix a través de


Solución de problemas de AD FS: detección de bucles

Los bucles en AD FS se producen cuando un usuario de confianza rechaza continuamente un token de seguridad válido y lo redirige de vuelta a AD FS.

Para evitar que esto suceda, AD FS ha implementado lo que se denomina cookie de detección de bucles. De forma predeterminada, AD FS escribe una cookie en clientes pasivos web denominados MSISLoopDetectionCookie. Esta cookie contiene un valor de marca de tiempo y un valor de número de tokens emitidos. Esto permite a AD FS realizar un seguimiento de la frecuencia y el número de veces que un cliente ha visitado el servicio de federación dentro de un intervalo de tiempo específico.

Si un cliente pasivo visita el servicio de federación para obtener un token cinco (5) veces en un plazo de 20 segundos, AD FS produce el siguiente error:

MSIS7042: The same client browser session has made '{0}' requests in the last '{1}' seconds. Contact your administrator for details. (La misma sesión del explorador cliente realizó "6" solicitudes en los últimos "11" segundos. Póngase en contacto con el administrador para obtener información detallada).

La entrada en bucles infinitos suele deberse a un comportamiento incorrecto de una aplicación de usuario de confianza que no consume correctamente el token emitido por AD FS, Como consecuencia, la aplicación envía al cliente pasivo de vuelta a AD FS una y otra vez para obtener un nuevo token. AD FS emitirá al cliente pasivo un nuevo token cada vez, siempre y cuando no se superen 5 solicitudes en un plazo de 20 segundos.

Puede usar PowerShell para cambiar el número de tokens emitidos y el valor de intervalo de tiempo.

Set-AdfsProperties -LoopDetectionMaximumTokensIssuedInterval 5  -LoopDetectionTimeIntervalInSeconds 20

El valor mínimo de LoopDetectionMaximumTokensIssuedInterval es 1.

El valor mínimo de LoopDetectionTimeIntervalInSeconds es 5.

También puede deshabilitar la detección de repeticiones al realizar pruebas de rendimiento.

Set-AdfsProperties -EnableLoopDetection $false

Importante

No se recomienda deshabilitar permanentemente la detección de bucles, ya que esto impide que los usuarios entren en estado de bucle infinito.

Pasos siguientes