OAuth 2.0 和 OAuth 2.1

OAuth 2.0 和 OAuth 2.1比较:

OAuth 2.0 和 OAuth 2.1 是授权框架的不同版本,它们用于允许应用程序安全地访问用户在另一个服务上的数据。以下是它们之间的一些主要区别:

  1. 安全性增强:OAuth 2.1 旨在提高安全性,它整合了自 OAuth 2.0 发布以来的最佳实践。它特别关注更好的默认安全性,并且不包含任何被认为是实验性的或仍在进行中的特性。
  2. 移除不安全的授权类型:在 OAuth 2.1 中,一些被认为是不安全的授权类型被移除,例如隐式授权("response_type=token")和资源所有者密码凭据授权。
  3. PKCE(Proof Key for Code Exchange)要求:OAuth 2.1 要求在授权代码授予时使用 PKCE,以增强移动应用和本地应用的安全性。
  4. 重定向 URI 的严格匹配:OAuth 2.1 要求使用精确字符串匹配来比较重定向 URI,而不是使用通配符或子字符串匹配。
  5. 持有者令牌的使用:在 OAuth 2.1 中,持有者令牌(访问令牌)不再通过 URI 查询字符串传输,以减少泄露的风险。
  6. 刷新令牌的保护:OAuth 2.1 要求刷新令牌必须受发件人限制或一次性使用,以增强刷新令牌的安全性。
  7. 规范的整合和精简:OAuth 2.1 根据安全最佳实践对 OAuth 2.0 协议进行整合和精简,移除了不安全的授权流程。
  8. 向后兼容性:尽管 OAuth 2.1 旨在提高安全性,但它并不是 OAuth 2.0 的完全重构,而是一个改进的版本。OAuth 2.1 建立在 OAuth 2.0 RFC 的基础上,继承了所有未明确省略或更改的行为。
  9. 实施状态:截至知识更新日期,OAuth 2.1 规范仍在讨论中,并没有最终确定。开发者可以遵循安全性最佳实践为 OAuth 2.1 的发布做好准备,但目前还不能使用正式的 OAuth 2.1 规范。

这些变化意味着 OAuth 2.1 将更加注重安全性和最佳实践的实施,同时保持与 OAuth 2.0 的兼容性,以便开发者可以平滑过渡到新版本。

OAuth 2.1

相关网址:

OAuth 2.1

It's Time for OAuth 2.1 • Aaron Parecki

OAuth 2.1: How Many RFCs Does it Take to Change a Lightbulb? | Okta Developer

OAuth 2.1 是 OAuth 2.0 的进化版,它旨在简化 OAuth 2.0 的实现,同时增强安全性。OAuth 2.1 整合了 OAuth 2.0 中的一些最佳实践和扩展,以提供一个更加安全且易于实施的框架。以下是学习 OAuth 2.1 的一些关键点:

1. OAuth 2.1 的核心组件

  • 授权服务器(Authorization Server):负责验证资源拥有者的身份,并颁发访问令牌。

  • 资源服务器(Resource Server):托管受保护的资源,能够使用访问令牌验证请求。

  • 资源拥有者(Resource Owner):通常是用户,拥有对受保护资源访问权限的实体。

  • 客户端(Client):代表资源拥有者并获得授权后访问受保护资源的软件应用。

  • 访问令牌(Access Token):授予客户端访问受保护资源的凭证。

2. OAuth 2.1 的授权流程

OAuth 2.1 定义了几种授权流程,包括:

  1. 授权码模式(Authorization Code Grant):这是最常用且安全性较高的流程,适用于有后端的应用程序。它涉及到一个前端重定向的过程,用户同意授权后,客户端通过后端服务器交换授权码以获取访问令牌(access token)。

  2. 客户端凭据模式(Client Credentials Grant):适用于没有前端的命令行应用或者服务端应用,客户端直接使用其凭证(client ID 和 client secret)向授权服务器请求访问令牌。

  3. 设备授权模式(Device Authorization Grant):适用于在设备上运行的应用程序,这些设备可能没有传统的输入机制(如智能电视、打印机等),用户通过设备上的说明在另一设备上完成授权。

3. OAuth 2.1 的安全增强

OAuth 2.1 引入了一些安全增强措施,包括:

  • 强制使用 HTTPS:确保所有通信都是加密的。

  • 禁止使用明文密码:不再推荐使用资源拥有者密码凭证流程。

  • 引入 PKCE(Proof Key for Code Exchange):用于增强授权码流程的安全性,防止授权码拦截攻击。

  • 访问令牌的生命周期管理:推荐使用短期访问令牌和刷新令牌。




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

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

相关文章

C语言/数据结构——每日一题(移除链表元素)

一.前言 今天在leetcode刷到了一道关于单链表的题。想着和大家分享一下。废话不多说,让我们开始今天的知识分享吧。 二.正文 1.1题目要求 1.2思路剖析 我们可以创建一个新的单链表,然后通过对原单链表的遍历,将数据不等于val的节点移到新…

MySQL索引(聚簇索引、非聚簇索引)

了解MySQL索引详细,本文只做整理归纳:https://blog.csdn.net/wangfeijiu/article/details/113409719 概念 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。 索引分类 主键索引&#xff1a…

微信群发用什么软件最安全?微信群发软件哪个好?微信群发助手软件在哪里?

今天给大家推荐一款我们目前在使用的电脑群发工具掘金小蜜,不仅可以无限多开,方便你同时管理多个账号,群发功能更是十分强大,轻松释放你的双手。 掘金小蜜(只支持Win7及以上操作系统,没有推Mac版和手机客户…

【算法入门赛】B. 自助店评分(C++、STL、推荐学习)题解与代码

比赛地址:https://www.starrycoding.com/contest/8 题目描述 在上一场的入门教育赛中,牢 e e e找到了所有自助店的位置,但是他想发现一些“高分好店”,于是他利用爬虫技术从“小众点评APP”中爬取了武汉所有自助店的评分。 评分…

[笔试训练](十八)

目录 052:字符串压缩 053:chika和蜜柑 054:01背包 052:字符串压缩 压缩字符串(一)_牛客题霸_牛客网 (nowcoder.com) 题目: 题解: 双指针模拟 class Solution { public:string compressString(string param) {int nparam.size();string ret;int num…

【线性代数】英语版听课笔记

线性代数 - 北京航天航空大学(英文版)_哔哩哔哩_bilibili 39.concept of vector space in this lecture we will studyvector space, the concept of basis dimension and coordinates 向量空间的维数:向量空间的基底所含向量的…

wandb: - 0.000 MB of 0.011 MB uploaded持续出现的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

界面组件DevExpress Blazor UI v23.2新版亮点:图表组件全新升级

DevExpress Blazor UI组件使用了C#为Blazor Server和Blazor WebAssembly创建高影响力的用户体验,这个UI自建库提供了一套全面的原生Blazor UI组件(包括Pivot Grid、调度程序、图表、数据编辑器和报表等)。 DevExpress Blazor控件目前已经升级…

四边形不等式优化dp,超详细,概念定理详解证明,OJ练习

零、前言 四边形不等式最早是 D.E.Knuth 在优化传统O(n3)区间dp求解最优二叉检索树为O(n2)所采用的方法,可惜原论文的证明跳跃性过强,阅读门槛较高. 不过随着算竞的发展,四边形不等式已经有了较为完备的可参考资料,本文进行介绍. 一、再看[石子合并] 石子合并是区间dp的经典入…

【vue3-pbstar-big-screen】一款基于vue3、vite、ts的大屏可视化项目

vue3-pbstar-big-screen是一款基于vue3、vite、ts的大屏可视化项目&#xff0c;项目已内置axios、sass&#xff0c;如element、echarts等需要自行安装。 屏幕适配方案 本项目主要通过transform: scale()缩放核心区域实现屏幕适配效果 //html <div class"container-wr…

IDEA无法下载远程仓库jar包问题

问题描述&#xff1a; idea无法下载远程仓库jar包&#xff0c;最奇怪的是idea有多个项目&#xff0c;有些项目可以下载&#xff0c;有些项目不行。报错如下&#xff1a; 一开始&#xff1a; unable to find valid certification path to requested target Try run Maven impo…

Adobe Premiere Pro安装

一、安装包下载 链接&#xff1a;https://pan.baidu.com/s/1aYqTSQQutDguKYZE-yNHiw?pwd72l8 提取码&#xff1a;72l8 二、安装步骤 1.鼠标右击【Pr2024(64bit)】压缩包&#xff08;win11及以上系统需先点击“显示更多选项”&#xff09;【解压到 Pr2024(64bit)】。 2.打开…

ICode国际青少年编程竞赛- Python-4级训练场-太阳能板1

ICode国际青少年编程竞赛- Python-4级训练场-太阳能板1 1、 Dev.step(3) Dev.turnRight() Dev.step(2) while Dev.energy < 60:wait() Dev.step(-6)2、 Dev.step(7) while Dev.energy < 90:wait() Dev.step(-1) Dev.turnRight() Dev.step(7)3、 Dev.step(4) Dev.turn…

第 129 场 LeetCode 双周赛题解

A 构造相同颜色的正方形 枚举&#xff1a;枚举每个 3 3 3\times 3 33的矩阵&#xff0c;判断是否满足条件 class Solution {public:bool canMakeSquare(vector<vector<char>>& grid) {for (int i 0; i < 2; i)for (int j 0; j < 2; j) {int c1 0, c…

知识点(慢慢更新..break,continue,return)

目录 一. break,continue,return用法和含义 1. break 2. continue 3. return 4. 总结 一. break,continue,return用法和含义 1. break break用于完全结束一个循环&#xff0c;跳出循环体&#xff0c;执行循环后面的语句。 使用场合主要是switch语句和循环结构。 ● 在循…

burp靶场xss漏洞(初级篇)

靶场地址 http://portswigger.net/web-security/all-labs#cross-site-scripting 第一关&#xff1a;反射型 1.发现搜索框直接注入payload <script>alert(111)</script> ​ 2.出现弹窗即说明攻击成功 ​ 第二关&#xff1a;存储型 1.需要在评论里插入payload …

从零开始搭建Ubuntu CTF-pwn环境

下面就将介绍如何从零搭建一个CTF-pwn环境&#xff08;由于学习仍在进行&#xff0c;故一些环境如远程执行环境还没有搭建的经历&#xff0c;如今后需要搭建&#xff0c;会在最后进行补充&#xff09; 可以在ubuntu官方网站上下载最新的长期支持版本:(我下载的是22.04版本) h…

实景三维技术在城市运行状态监测方面的应用

随着城市化步伐的加快&#xff0c;城市规模日益扩大&#xff0c;对于城市运行状态的实时监控需求愈发迫切。传统的监控手段已无法满足现代城市管理的精细化和高效化要求。而实景三维技术的崛起&#xff0c;为城市运行状态实时监控注入了新的活力&#xff0c;带来了新的机遇与挑…

pycharm如何对for循环中第n次循序执行断点

目录 在 PyCharm 中&#xff0c;您可以设置条件断点来实现这个功能&#xff0c;这样只有在满足特定条件时断点才会被触发。以下是设置仅在 for 循环的第 n 次迭代时触发断点的步骤&#xff1a; 设置断点&#xff1a; 首先&#xff0c;找到您想要在 for 循环中设置断点的行。点击…

Vue3:项目创建

Vue 3 相对于 Vue 2 带来了许多改进和优点&#xff0c;这些改进主要是为了提高性能、开发体验和可维护性。但是对于创建项目&#xff0c;Vue3也可以采用跟Vue2相同的方式。 使用CLI创建 1. 安装Vue CLI 首先&#xff0c;确保你已经安装了Node.js&#xff08;建议使用LTS版本…