谷歌在此特指“访问”令牌。
在OAuth 2.0的背景下,混淆代理问题适用于Implicit Grant协议流在身份验证方面使用时。谷歌所说的“面向客户端应用程序的OAuth 2.0”是基于隐式授权协议流程的。
由于隐式流程通过URI片段将访问令牌暴露给最终用户,因此可能存在访问令牌可能被篡改的可能性。合法的应用程序(OAuth客户端)可以成为混淆代理,通过接受发放给不同(恶意)应用程序的访问令牌,从而使攻击者可以访问受害者的帐户。
验证访问令牌的关键步骤是应用程序验证访问令牌最初没有发放给其他应用程序。谷歌在提到这一点时进行了强调:
注意:在验证令牌时,务必确保响应中的受众字段与您在API控制台注册的client_id完全匹配。这是解决“困惑的代理”问题的方法,执行此步骤绝对至关重要。FileStore的错误在于未验证Google所颁发的访问令牌是否确实是针对FileStore而颁发的;事实上,该令牌实际上是针对EvilApp颁发的。
其他人已经比我更优雅地描述了这个问题:
我希望这段内容能够解释客户端应用程序访问令牌验证中的“为什么”部分,并阐明它与混淆代理问题的关系。请注意,需要保留HTML标签。