当前位置: 首页 > news >正文

OpenID Connect 和 OAuth 2.0 有什么不同?

目录

OAuth 2.0

OpenID Connect (OIDC)

功能不同

参与方稍微不同

协议流程不同

Token 类型不同

使用场景不同


在理解 OpenID Connect(OIDC)和 OAuth 2.0 之间的区别之前,再回顾下它们各自的基本概念。

OAuth 2.0

OAuth 2.0(Open Authorization 2.0,开放授权 2.0)是被广泛使用的一种开放的标准授权协议,用于授权一个应用程序访问用户在另一个应用程序上的受保护资源,而无需共享用户的访问凭证(如用户名和密码)。OAuth 2.0 的设计不仅提高了安全性,并且简化了开发者的集成过程。OAuth 2.0 并不是一种身份验证协议,而是专注于授权,即允许一个系统在不暴露用户凭证的情况下获得对另一个系统的访问权限。

OpenID Connect (OIDC)

OpenID Connect 是一种基于 OAuth 2.0 的身份验证层,通过引入一些新的概念和组件,使客户端能够验证用户的身份并获取用户的基本信息。OpenID Connect 的核心目标是提供一种简单、安全且标准化的方式,让客户端能够确认用户的身份。OIDC 通过在 OAuth 2.0 的基础上添加 ID 令牌(ID Token)来实现身份验证。

接下来具体看下 OpenID Connect 与 OAuth 2.0 的区别:

功能不同

  • OAuth 2.0 主要用于授权,即允许第三方应用访问用户的资源而不需要用户提供其用户名和密码。通过 OAuth 2.0,应用可以请求对特定数据的访问权限,比如查看用户的照片或者发布状态更新。
  • OpenID Connect 则主要用于身份认证,即确认用户的身份。在 OAuth 2.0 的基础上增加了一层身份验证功能,使得应用不仅能够获得授权,还能验证用户的身份。

参与方稍微不同

  • OAuth 2.0 定义了四个角色:客户端(Client)、资源所有者(Resource Owner)、授权服务器(Authorization Server)和资源服务器(Resource Server)。
  • OpenID Connect 在 OAuth 2.0的基础上增加了身份提供者(IDP)角色,负责发放 ID Token。

协议流程不同

  • OAuth 2.0 定义了不同的授权流程(authorization flows),包括授权码授权流程(Authorization Code Grant)、隐式授权流程(Implicit Grant)、密码授权流程(Resource Owner Password Credentials Grant)和客户端凭证授权流程(Client Credentials Grant),用于获取 Access Token。
  • OpenID Connect 在 OAuth 2.0 的基础上添加了 ID Token 以及用于获取用户信息的端点。OpenID Connect 支持的流程和 OAuth 2.0 略有不同,OpenID Connect 支持的流程包括授权码流程(Authorization Code Flow)、隐式流程(Implicit Flow)和混合流程(Hybrid Flow)

Token 类型不同

  • OAuth 2.0 通常颁发 Access Token 和 Refresh Token,主要用于访问资源,包含访问范围、有效期等信息。
  • OpenID Connect 在 OAuth 2.0 基础上多颁发了一个 ID Token,ID Token 是 JWT(JSON Web Token)格式的,包含了用户身份的信息,例如用户标识符、签名算法、过期时间等,主要用于身份认证。

使用场景不同

  • OAuth 2.0 通常用于授权第三方应用程序访问受保护资源,如用户的照片、视频等。
  • OpenID Connect 通常用于实现身份验证,允许用户使用其在身份提供者上的凭据登录到不同的客户端应用程序。


http://www.mrgr.cn/news/66499.html

相关文章:

  • Rust 图形界面开发——使用 GTK 创建跨平台 GUI
  • cesium实现测面功能
  • 十四届蓝桥杯STEMA考试Python真题试卷第二套第五题
  • 【矩阵的大小和方向的分解】
  • 【专题】产业全球化视角下中国企业出海人才趋势洞察报告汇总PDF洞察(附原数据表)
  • react的antd-mobile使用Steps显示物流
  • Java继承练习
  • C++《list的模拟实现》
  • 通讯录(静态)
  • js基础篇笔记 (万字速通)
  • 【安装配置教程】二、VMware安装并配置ubuntu22.04
  • Kane-Mele X4Y2Z6材料自旋电子和谷电子理论研究
  • CSS的配色
  • 【数据分享】1981-2024年我国逐日平均气温栅格数据(免费获取)
  • 网络学习笔记---客户端和服务端
  • FBX福币交易所A股三大指数小幅低开 稀土永磁板块回调
  • Oracle OCP认证考试考点详解082系列12
  • 简易CPU设计入门:译码模块(一)
  • 【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,2-14
  • MySQL学习正式篇
  • 深度学习模块创作(缝合)教程|适合1-360月小宝宝食用,干货满满
  • Java基础-集合
  • 【保姆级教程】使用 oh-my-posh 和 clink 打造个性化 PowerShell 和 CMD
  • 树莓派上安装与配置 Nginx Web 服务器教程
  • AutoCAD2021
  • 【addRepository 在tomcat 8和tomcat 9的支持情况】