Solução de problemas do AD FS – Detecção de Loop

O looping no AD FS ocorre quando uma parte confiável rejeita continuamente um token de segurança válido e redireciona para o AD FS.

Para evitar que isso aconteça, o AD FS implementou o que é chamado de cookie de detecção de loop. Por padrão, o AD FS grava um cookie nos clientes passivos da Web chamados de MSISLoopDetectionCookie. Esse cookie contém um valor de carimbo de data/hora e um número de tokens emitidos. Isso permite que o AD FS acompanhe a frequência e quantas vezes um cliente visitou o Serviço de Federação em um período específico.

Se um cliente passivo visitar o Serviço de Federação para um token cinco (5) vezes em 20 segundos, o AD FS gerará o seguinte erro:

MSIS7042: a mesma sessão do navegador do cliente fez '{0}' solicitações nos últimos '{1}' segundos. Entre em contato com o administrador para obter detalhes.

A entrada em loops infinitos geralmente é causada por um aplicativo da parte confiável com coportamento inadequado, que não está consumindo com êxito o token emitido pelo AD FS, e o aplicativo está enviando o cliente passivo de volta ao AD FS, repetidamente, para obter um novo token. O AD FS emitirá ao cliente passivo um novo token a cada vez, desde que não exceda 5 solicitações em 20 segundos.

Você pode usar o PowerShell para alterar o número de tokens emitidos e o valor do intervalo de tempo.

Set-AdfsProperties -LoopDetectionMaximumTokensIssuedInterval 5  -LoopDetectionTimeIntervalInSeconds 20

O valor mínimo para LoopDetectionMaximumTokensIssuedInterval é 1.

O valor mínimo para LoopDetectionTimeIntervalInSeconds é 5.

Você também pode desabilitar a detecção de loop ao fazer testes de desempenho.

Set-AdfsProperties -EnableLoopDetection $false

Importante

Não é recomendável desabilitar permanentemente a detecção de loop, pois isso impede que os usuários entrem em estados de loop infinito.

Próximas etapas