OAuth2不用于身份验证

时间:2017-05-10 08:08:19

标签: oauth-2.0 openid

OAuth2不足以进行身份​​验证的主要原因是什么?

我可以看到,如果userA登录evil.com,那么evil.com的所有者可以将userA的access_token提交给good.com(或任何其他使用fb网站的登录)并伪装成userA。

但是如果good.com检查访问令牌是否适用于它,那么我认为没有任何攻击的可能性..

我无法看到对此的大惊小怪。例如,当我获得access_token详细信息时,facebook会向我提供App ID。如果我检查一下,攻击怎么可能?

这不是安全漏洞,但缺乏标准吗?喜欢哪个范围或哪个字段电子邮件等?

2 个答案:

答案 0 :(得分:1)

您收到的访问令牌只代表发给客户的授权。它只允许客户端访问受保护的资源,但它不会向您提供有关资源所有者的任何信息。

在您的示例中,evil.com可以获取拥有userA的资源,但无法知道userA是谁。

请在this excellent video处了解OAuth2和授权/身份验证条款。它对我帮助很大。

答案 1 :(得分:1)

访问令牌确实为您提供了有关资源所有者的信息(可能),但它没有提供有关资源所有者是否存在和/或他/她如何进行身份验证的信息,即使您能够识别是否令牌以某种未定义的非标准方式为您服务(后者是OpenID Connect相对于OAuth 2.0的另一个优势,正如OP已经提到的那样)。