我在 Windows Server 2012 R2 上使用 ADFS 3.0。我有一个应用程序使用 OAuth2 请求授权码,然后使用该代码获取访问令牌。
应用程序需要重定向 URI 中的一些上下文,有时此上下文会导致 URI 大于 400 个字符。发生这种情况时,ADFS 3.0 返回:
MSIS9253:收到的授权码无效。收到的客户端标识符或重定向 URI 与收到的授权码颁发给的客户端 ID 或重定向 URI 不匹配。
我确认这个错误是误导性的。客户端 ID 和 URI 完全相同 - 问题出现原因是,如果 URI 的长度超过 400 个字符,ADFS 3.0 会截断重定向 URI。然后,当它将访问令牌请求期间传递的直接 URI 与授权请求期间传递的 URI 进行比较时,它们不匹配!
我能够直接连接到 ADFS 使用的数据库,并且我确认它们的架构仅包含重定向 URI 的 400 个字符。
有没有办法允许更长的 URI?