当前位置:   article > 正文

OIDC 与 OAuth2.0学习

OIDC 与 OAuth2.0学习

OpenID Connect (OIDC) 和 OAuth 2.0 是两种不同的协议,它们通常一起使用,但服务于不同的目的。下面是它们的

主要区别和联系:

OAuth 2.0

OAuth 2.0 是一个授权框架,它允许第三方应用代表用户获取对服务器资源的有限访问权限。它不提供身份验证,而是专注于授权。OAuth 2.0 定义了四种角色:

  1. 资源所有者(Resource Owner):通常是用户,有权授予访问其受保护资源的权限。

  2. 客户端(Client):代表资源所有者并以其名义请求受保护资源的第三方应用。

  3. 授权服务器(Authorization Server):在成功验证资源所有者并获得授权后,向客户端发放访问令牌。

  4. 资源服务器(Resource Server):托管受保护资源的服务器,能够接受并使用访问令牌来响应客户端的请求。

OAuth 2.0 定义了几种授权流程(如授权码流程、隐式流程、资源所有者密码凭据流程和客户端凭据流程),用于不同的使用场景和安全需求。

OpenID Connect (OIDC)

OpenID Connect 是在 OAuth 2.0 之上构建的简单身份层。它允许客户端根据授权服务器的协议标准验证用户身份,并获取用户的基本概要信息。OIDC 在 OAuth 2.0 的四种角色基础上增加了一个角色:

  1. 身份提供者(Identity Provider, IdP):即授权服务器,负责验证用户身份并发放身份令牌(ID Token)。

OIDC 的核心是使用 id_token 来提供用户身份信息,这是一个符合 JSON Web Token (JWT) 格式的安全令牌,包含了用户的身份信息和验证状态。

联系与区别

  • 联系:OIDC 使用 OAuth 2.0 的授权流程来实现身份验证,因此它们通常一起部署。在 OIDC 流程中,客户端不仅获取访问令牌(用于访问资源服务器上的资源),还获取 id_token(用于验证用户身份)。

  • 区别:OAuth 2.0 专注于授权,而 OIDC 专注于身份验证。OAuth 2.0 不提供用户身份信息,而 OIDC 提供了用户身份信息。

使用场景

  • OAuth 2.0:适用于需要代表用户访问受保护资源的场景,例如,一个图片编辑应用需要访问用户的云存储服务来获取图片。

  • OIDC:适用于需要验证用户身份并获取用户信息的场景,例如,一个社交网络应用需要验证用户的身份并获取其基本资料。

在实际应用中,通常会同时使用 OAuth 2.0 和 OIDC 来实现完整的身份验证和授权解决方案。例如,一个应用可能首先使用 OIDC 来验证用户身份,然后使用 OAuth 2.0 来获取访问用户资源的权限。

OIDC学习

  1. OIDC 是什么? OIDC 是一个基于 OAuth 2.0 的身份认证协议,它增加了身份认证的功能。OIDC 通过在 OAuth 2.0 的基础上增加 ID Token(身份令牌),使得客户端能够识别并认证用户的身份。ID Token 通常采用 JWT(JSON Web Token)格式,包含用户的身份信息2。

  2. OIDC 的角色定义

    • OpenID Provider (OP):相当于 OAuth 2.0 中的授权服务器,负责颁发 Access Token 和 ID Token。
    • Relying Party (RP):代指 OAuth 2.0 中的客户端,即请求 ID Token 的应用。
    • End User (EU):即用户,ID Token 的信息中会包含关于终端用户的信息2。
  3. OIDC 的特点

    • 提供了用户身份验证。
    • 使用 ID Token 传递用户身份信息。
    • 通过定义 UserInfo Endpoint 来获取更多用户信息。

OAuth 2.0学习

  1. OAuth 2.0 是什么? OAuth 2.0 是一个授权标准协议,允许用户将第三方应用安全地授权访问其在服务提供者上的数据,而无需共享用户名和密码。它主要用于资源的授权访问345。

  2. OAuth 2.0 的角色定义

    • 资源所有者(Resource Owner):拥有受保护资源的用户。
    • 客户端(Client):希望访问资源所有者受保护资源的第三方应用程序。
    • 授权服务器(Authorization Server):负责认证资源所有者并颁发访问令牌给客户端。
    • 资源服务器(Resource Server):托管受保护资源的服务器345。
  3. OAuth 2.0 的授权类型

    • 授权码授权(Authorization Code Grant)
    • 隐式授权(Implicit Grant)
    • 密码授权(Resource Owner Password Credentials Grant)
    • 客户端凭证授权(Client Credentials Grant)



声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/572039
推荐阅读
  

闽ICP备14008679号