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)



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/614140.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PHP高级教程

🐌博主主页:🐌​倔强的大蜗牛🐌​ 📚专栏分类:PHP 📚参考教程:菜鸟\编程网❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、PHP 多维数组 二、PHP date(&#…

进程间通信(一)

IPC 在之前我们也有涉及到进程间通信的知识点,比如fork或exec或父进程读取子进程的退出码等,但是这种通信方式很有限,今天来学习进程间通信的其他技术——IPC(InterProcess Communication)。 IPC的方式通常有管道&…

【比邻智选】MF871U模组

🚀搭载国产芯,严苛测试,稳定可靠 🛠️R16特性加持,5G LAN,纳秒级精度 🌐超低成本,丰富协议,连接无界限

linux安装配置Docker保姆级教程

Docker到底是什么? Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间…

[AutoSar]lauterbach_001_ORTI_CPUload_Trace

目录 关键词平台说明一、ORTI概述二、ORTI文件的生成三、ORTI文件的导入四、Trace 功能4.1 Trace 功能菜单介绍4.2 Trace功能的配置4.3 Trace MCDS 设置4.4 Task Switches断点的设置4.5 Trace 数据的录取4.6 CPU 负载和Task调度的查看 关键词 嵌入式、C语言、autosar、OS、BSW…

智慧公厕建设,打造智慧城市基础设施新亮点

公共厕所是城市基础设施的重要组成部分,而智慧公厕的建设则是现代城市管理的创新之举。为了实现公厕的精细化管理和提供更便捷的服务,推进智慧公厕建设必须要实现技术融合、业务融合、数据融合的目标,跨越层级、地域、系统、部门和业务的限制…

LabVIEW的MEMS电容式压力传感器测试系统

LabVIEW的MEMS电容式压力传感器测试系统 针对传统微惯性测量单元(MIMU)标定方法存在的过程繁琐、标定周期长及设备复杂等问题,提出了一种基于LabVIEW软件的MIMU误差参数快速标定方法。通过软件上位机控制小型三轴转台,配合卡尔曼滤波器技术,…

Linux进程间通信 pipe 实现线程池 命名管道 实现打印日志 共享内存代码验证 消息队列 信号量

文章目录 前言管道匿名管道 pipe测试管道接口 --> 代码验证管道的4种情况管道的5种特征 线程池案例代码实现:ProcessPool.ccTask.hpp检测脚本makefile 命名管道代码演示:makefilenamedPipe.hppserver.ccclient.cc 实现日志Log.hpp 共享内存共享内存原…

机器人系统仿真

0、何为仿真 通过计算机对实体机器人系统进行模拟的技术。 1、为何仿真 低成本: 机器人实体一般价格昂贵,为降低机器人学习、调试的成本;高效: 搭建的环境更为多样且灵活,可以提高测试效率以及测试覆盖率&#xff1b…

1.基于python的单细胞数据预处理-降维可视化

目录 降维的背景PCAt-sneUMAP检查质量控制中的指标 参考: [1] https://github.com/Starlitnightly/single_cell_tutorial [2] https://github.com/theislab/single-cell-best-practices 降维的背景 虽然特征选择已经减少了维数,但为了可视化&#xff0…

pikachu靶场-全套学习

文章目录 配置pikachu靶场浏览器访问过程burpsuite配置代理hackbar安装使用kali安装中国蚁剑暴力破解cookie简化场景解释各部分含义如何工作 基于表单的暴力破解验证码绕过(On server)验证码绕过(on client)token防爆破? XSS(Cross-Site Scripting跨站脚本攻击 &am…

牛客NC142 最长重复子串【中等 字符串 Java/Go/C++】

题目 题目链接: https://www.nowcoder.com/practice/4fe306a84f084c249e4afad5edf889cc 思路 注意:题目给的时间复杂度是O(N^2)那么直接套用双重循环:外层循环i为假定起始重复子串的初始位置,内层循环的j为假定重复子串的结束位置…

【LeetCode算法】28. 找出字符串中第一个匹配项的下标

提示:此文章仅作为本人记录日常学习使用,若有存在错误或者不严谨得地方欢迎指正。 文章目录 一、题目二、思路三、解决方案四、JAVA截取字符串的常用方法4.1 通过subString()截取字符串* 一、题目 给你两个字符串 haystack 和 needle ,请你在…

ubuntu安装oceanbase调通本地navicat链接

分为两部分 一安装oceanbase服务 准备工作 mkdir -p /data/1 /data/log1 chown -R admin.admin /data/1 /data/log1/偷偷说:其实这步我忘记执行,也没影响我安装 oceanbase程序是很占内存的在安装时我们要先下载好安装包: 然后放在能记住的…

react引入阿里矢量库图标

react引入阿里矢量库图标 登录阿里矢量库,将项目所需的图标放一起 react项目中新建文件夹MyIcon.js 3. 在页面中引入,其中type为图标名称

机器人系统ros2-开发实践08-了解如何使用 tf2 来访问坐标帧转换(Python)

tf2 库允许你在 ROS 节点中查询两个帧之间的转换。这个查询可以是阻塞的,也可以是非阻塞的,取决于你的需求。下面是一个基本的 Python 示例,展示如何在 ROS 节点中使用 tf2 查询帧转换。 本教程假设您已完成tf2 静态广播器教程 (Python)和tf…

探索循环购模式:消费返利与积分机制的创新融合

大家好,我是吴军,今天非常荣幸能与大家分享一种别具一格的商业模式——循环购模式。这种商业模式在近年来逐渐崭露头角,受到了广大消费者的热烈追捧。或许您之前听说过消费满额即送现金的活动,但循环购模式不仅仅局限于此&#xf…

单细胞分析:多模态 reference mapping (2)

引言 本文[1]介绍了如何在Seurat软件中将查询数据集与经过注释的参考数据集进行匹配。我们展示了如何将来自不同个体的人类骨髓细胞(Human BMNC)的人类细胞图谱(Human Cell Atlas)数据集,有序地映射到一个统一的参考框…

数据库数据恢复—Sql Server数据库文件丢失丢失怎么恢复数据?

数据库数据恢复环境: 5块硬盘组建一组RAID5阵列,划分LUN供windows系统服务器使用。windows系统服务器内运行了Sql Server数据库,存储空间在操作系统层面划分了三个逻辑分区。 数据库故障: 数据库文件丢失,主要涉及3个…

【微信开发】微信支付前期准备工作(申请及配置)

1、申请并配置公众号或微信小程序 1.1 账户申请 通过微信公众平台,根据指引申请微信小程序或公众号,申请时需要微信认证,申请流程不在赘述 1.2 信息配置 申请通过后,需进入小程序和公众号内进行信息配置 1.2.1 小程序信息配置…