Estou usando o ADFS 3.0 no Windows Server 2012 R2. Eu tenho um aplicativo que usa o OAuth2 para solicitar um código de autorização e, em seguida, obter um token de acesso usando esse código.
O aplicativo requer algum contexto em seu uri de redirecionamento e, às vezes, esse contexto resulta em um uri maior que 400 caracteres. Quando isso acontece, o ADFS 3.0 retorna:
MSIS9253: The authorization code received is invalid. The received client identifier or the redirect uri does not match the client id or redirect uri to which the received authorization code was issued.
Confirmei que esse erro é enganoso. O ID do cliente e o URI são exatamente os mesmos - o problema parece ser que o ADFS 3.0 está truncar o redirecionamento uri se o URI for maior que 400 caracteres de comprimento. Quando compara o URI direto transmitido durante a solicitação do token de acesso ao URI transmitido durante a solicitação de autorização, eles não correspondem!
Consegui me conectar diretamente ao banco de dados usado pelo ADFS e confirmei que o esquema deles contém apenas 400 caracteres para o URI de redirecionamento.
Existe uma maneira de permitir URIs mais longos?