OAuth2不足以进行身份验证的主要原因是什么?
我可以看到,如果userA登录evil.com,那么evil.com的所有者可以将userA的access_token提交给good.com(或任何其他使用fb网站的登录)并伪装成userA。
但是如果good.com检查访问令牌是否适用于它,那么我认为没有任何攻击的可能性..
我无法看到对此的大惊小怪。例如,当我获得access_token详细信息时,facebook会向我提供App ID。如果我检查一下,攻击怎么可能?
这不是安全漏洞,但缺乏标准吗?喜欢哪个范围或哪个字段电子邮件等?
答案 0 :(得分:1)
您收到的访问令牌只代表发给客户的授权。它只允许客户端访问受保护的资源,但它不会向您提供有关资源所有者的任何信息。
在您的示例中,evil.com可以获取拥有userA的资源,但无法知道userA是谁。
请在this excellent video处了解OAuth2和授权/身份验证条款。它对我帮助很大。
答案 1 :(得分:1)
访问令牌确实为您提供了有关资源所有者的信息(可能),但它没有提供有关资源所有者是否存在和/或他/她如何进行身份验证的信息,即使您能够识别是否令牌以某种未定义的非标准方式为您服务(后者是OpenID Connect相对于OAuth 2.0的另一个优势,正如OP已经提到的那样)。