如何识别 oauth2 redirect_uri 回调的提供者?

How to identify provider for oauth2 redirect_uri callback?

我正在尝试了解如何正确识别返回授权请求是由哪个提供商发起的。我看到三种方法:

我已经阅读了 OAuth2 规范的部分内容,但找不到任何讨论它的内容。查看其他客户端实现,提供商特定 URI 似乎是最常见的解决方案。我错过了什么吗?

客户端可能不是多租户,而是与单个授权服务器紧密集成,因此无需存储提供商标识符,因为只有一个固定的标识符。这可能是没有明显解决方案的原因。

像您这样的多提供商客户端应该将提供商标识符存储为 state 的一部分。这是因为 state 应该受到保护,而特定于提供者的 redirect_uri 则不受保护。可以针对提供者 B 的回调播放提供者 A 的访问令牌,从而破坏提供者特定回调的目的。

state 可以通过引用服务器状态或加密 cookie,或者通过状态参数的自包含加密结构值形式的值来保护,因此可以是安全的存储提供标识符的机制。