OpenID Connect为OAuth 2.0添加了什么(为什么OAuth 2.0不足以进行身份验证?)

OpenID Connect为OAuth 2.0添加了什么(为什么OAuth 2.0不足以进行身份验证?),oauth,oauth-2.0,openid,openid-connect,Oauth,Oauth 2.0,Openid,Openid Connect,我现在已经读了很多关于这方面的文章,但是我仍然不清楚OpenID Connect在OAuth 2.0之上提供的主要价值 我的理解: 当通过OAuth 2.0流接收访问令牌时,客户端确实知道用户已通过授权服务器的身份验证。OpenID Connect似乎只是添加了一个带有用户信息的ID令牌,但该信息可能是访问令牌的一部分,也可能通过受保护的资源(如单独的userDetails资源)提供。这似乎不能证明创建OpenID Connect是合理的,所以我确信我遗漏了一些东西 谢谢你的帮助 添加的详细信息

我现在已经读了很多关于这方面的文章,但是我仍然不清楚OpenID Connect在OAuth 2.0之上提供的主要价值

我的理解:
当通过OAuth 2.0流接收访问令牌时,客户端确实知道用户已通过授权服务器的身份验证。OpenID Connect似乎只是添加了一个带有用户信息的ID令牌,但该信息可能是访问令牌的一部分,也可能通过受保护的资源(如单独的userDetails资源)提供。这似乎不能证明创建OpenID Connect是合理的,所以我确信我遗漏了一些东西

谢谢你的帮助

添加的详细信息太长,无法发表评论。非常感谢你迄今为止的帮助

多亏了你的回答,我想我离你越来越近了。所以我回顾了这篇文章:。它说“OAuth对用户没有任何说明”。但是,您信任该服务在发出访问令牌之前对最终用户进行身份验证。在“常见陷阱”部分,本文讨论了为什么不能使用访问令牌进行身份验证。据我所知,我有以下问题:

访问令牌作为身份验证的证明 访问令牌是以前某个点的身份验证的证明。如果客户端确实希望在获得访问令牌后的某个时刻对用户进行身份验证,那么为什么不在当前最终用户尝试访问客户端时重复现有的Oauth流呢

作为证据访问受保护的资源 与上面相同-如果客户端在任何时候都需要身份验证,请重复Oauth流

接入令牌的注入 不清楚OpenID如何帮助实现这一点

缺乏观众限制 为什么将有效的ID令牌和访问令牌一起交给天真的客户机会更难?这是否与服务器端流相关?同样,如果需要,可以重复OAuth流

注入无效用户信息 这似乎需要签名,而不是单独的令牌。如果OAuth流发生在HTTPS上,是否为身份提供者两次签署用户详细信息增加了安全性

针对每个潜在身份提供商的不同协议
这似乎是公平的,但如果唯一的目的是对用于用户信息的令牌进行标准化,那就显得很奇怪了。

OAuth访问令牌对客户端来说是不透明的,可能由任何人提供,这意味着它不必由登录用户交给客户端。攻击者可以向客户端提供访问令牌,该令牌是攻击者在其自己的(不一定是恶意的)服务中从其他用户处获得的。来自OpenID Connect的ID令牌确保用户最近在OP登录,并提供可由客户端验证的有关该用户的信息。此外,ID令牌专门针对您的客户机


这些差异在

中有很好的描述,身份验证服务器可以对ID令牌进行签名。客户端应用程序可以验证签名,以确认最终用户已通过身份验证服务器的身份验证。访问令牌+受保护的资源调用不提供这种机制

此外,OpenID Connect还引入了与身份验证相关的其他机制,例如:

  • 身份验证上下文类引用
  • 最大身份验证年龄
  • sub
    索赔中的索赔请求参数
  • 满足政府更高级别的安全要求

    阅读和其他相关规范。此外,您可能会发现“”作为OpenID Connect为控制最终用户身份验证而添加的内容的摘要很有帮助


    OAuth 2.0是关于授予第三方对资源的有限访问权。开始于

    OAuth 2.0授权框架支持第三方 应用程序获取对HTTP服务的有限访问

    OpenID Connect是关于建立最终用户身份的。开始时

    OpenIDConnect 1.0是OAuth2.0之上的一个简单标识层 协议它使客户端能够验证最终用户的身份 根据授权服务器执行的身份验证

    在OAuth 2.0中,当资源服务器收到包含访问令牌的请求时,资源服务器知道资源所有者已授予第三方对资源的访问权。访问令牌表示此批准,但它不标识提交此批准的第三方

    如果一家公司认为像Salesforce或Google这样的人在管理用户帐户、密码、数字证书等方面比他们更有能力,那么该公司可以使用OpenID Connect将这一责任“外包”给OpenID Connect提供商。当公司在OpenID连接流的上下文中收到id令牌时,它知道提供商已经对最终用户进行了身份验证并建立了用户的身份


    OpenID Connect重新调整了OAuth 2.0流的用途,以便可以确定最终用户的身份。

    感谢您的参考-我已经看到了它,现在又重新阅读了它,但我对文章的解释不太清楚-我扩展了上面的问题。