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)



相关推荐

  1. 单点登录:SAML、OAuth2、OIDC 的区别联系

    2024-05-11 19:16:06       121 阅读
  2. Spring Security对接OIDC(OAuth2)外部认证

    2024-05-11 19:16:06       47 阅读
  3. SpringSecurity源码学习七:OAuth 2.0登录

    2024-05-11 19:16:06       49 阅读
  4. 深入解析OAuth2的原型认证流程【1】

    2024-05-11 19:16:06       33 阅读
  5. 2024.7.20-22学习日报

    2024-05-11 19:16:06       15 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-11 19:16:06       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-11 19:16:06       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-11 19:16:06       87 阅读
  4. Python语言-面向对象

    2024-05-11 19:16:06       96 阅读

热门阅读

  1. Centos安装 docker和docker-compose

    2024-05-11 19:16:06       32 阅读
  2. 机器学习_如何给客户做聚类K-Means

    2024-05-11 19:16:06       34 阅读
  3. SSL/TLS 协议

    2024-05-11 19:16:06       30 阅读
  4. thinkphp5.1 模型auto

    2024-05-11 19:16:06       25 阅读
  5. UnityDOTS备忘

    2024-05-11 19:16:06       27 阅读
  6. QT day2

    QT day2

    2024-05-11 19:16:06      26 阅读
  7. Qt宏和关键字

    2024-05-11 19:16:06       33 阅读
  8. SpringBoot 中检测文件编码格式

    2024-05-11 19:16:06       37 阅读
  9. SpringBoot 中 zip 文件解压工具类

    2024-05-11 19:16:06       32 阅读
  10. 【Python】如何训练模型并保存本地和加载模型

    2024-05-11 19:16:06       35 阅读