我知道这里有很多资料,但是我还是不太明白。
我知道OAuth2不用于身份验证,并且您需要OIDC在顶部才能进行身份验证。
但是仍然不太明白为什么。
如果我看到一个隐式流程,则步骤之一是用户 对 进行身份验证 ,然后颁发访问令牌。
这是身份验证,不是吗?
那么为什么我们仍然需要OIDC和ID令牌?是因为访问令牌本身不够用,而且JWT确保以后可以通过后端服务对用户进行身份验证吗?
如果只有OAuth2而没有OIDC,您将如何进行身份验证?
答案 0 :(得分:2)
披露:我为Ping身份工作。
我写了一篇博客,介绍为什么OpenID Connect在OAuth 2.0之上很有用,我认为这会有所帮助。
https://developer.pingidentity.com/en/blog/posts/2019/oidc-adds-authentication.html
基本上,OAuth 2.0框架为客户端提供了一种请求授权服务器去从资源所有者那里获取授权的方法。
即,客户端对授权服务器说:“我需要访问John拥有的受保护资源,您可以去请求John授权此访问。”然后授权服务器可以执行此操作,并返回访问令牌给客户端以访问受保护的资源。
但是,如果客户问,“我怎么知道实际上是约翰提供了授权?” OAuth 2.0框架无法回答这一问题。
OpenID Connect除了访问令牌外,还提供了额外的ID令牌,客户端可以检查它是否是John。