OAuth 2.0 和 OAuth 2.1

news2024/11/20 4:37:28

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):用于增强授权码流程的安全性,防止授权码拦截攻击。

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




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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IIC通信问题一般分析方法

IIC通信问题一般分析方法 一,简介二,分析思路三,总结 一,简介 在工作中很多设备都是使用IIC协议进行通信,比如音频功放芯片等,那就常常会遇到很多IIC通信异常的问题,本文主要介绍对于IIC问题&a…

C++算法题 - 图

目录 200. 岛屿数量130. 被围绕的区域133. 克隆图399. 除法求值207. 课程表210. 课程表 II 200. 岛屿数量 LeetCode_link 给你一个由 1(陆地)和 0(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围…

Android 屏幕适配全攻略(中)-从九宫格到矢量图,揭秘Android多屏幕适配的正确打开方式

在移动互联网时代,无论是小小的手机屏幕,还是大大的平板显示器,Android 应用都必须做到完美适配,给用户以极佳的体验。本文将剖析 Android 多屏幕适配背后的种种技术细节,为您揭开最佳实践的正确打开方式,让…

ModuleSim 仿真找不到模块 module is not defined

提示如下: # vsim -t 1ps -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cycloneive_ver -L rtl_work -L work -voptargs""acc"" pulse_generator_tb # Start time: 14:26:25 on May 10,2024 # ** Note: (…

基于小波交叉谱分析的地震波走时变化测量(MATLAB)

地震波在地球介质中传播,带来了丰富的地下介质物性的信息,为了解地球内部结构及运动变化提供了可能。地球内部地震波速度的差异是人们确定地球圈层结构和横向不均匀性的重要物理参数,地下介质应力的变化和积累是地震的孕育和发生的原因&#…

Day7 字符串和常用数据结构

文章目录 字符串和常用数据结构使用字符串使用列表生成式和生成器使用元组使用集合使用字典练习练习1:在屏幕上显示跑马灯文字。练习2:设计一个函数产生指定长度的验证码,验证码由大小写字母和数字构成。练习3:设计一个函数返回给…

速卖通ip地址会相互影响吗?如何防止账号关联?

在跨境电商行业,大部分平台都是不允许一个卖家操作多个店铺的,如果被平台检测出账户关联,可能会被封店。在速卖通平台,会通过IP地址来判断是否经营多个账号吗?IP地址会使店铺相互影响吗? 一、速卖通IP地址会关联吗? 首先各位卖…

内容安全(DPI和DFI解析)

内容安全前言: 防火墙的本质其实就是包过滤,我们通常所说的安全设备(如:IPS、IDS、AV、WAF)的检测重心是应用层。下一代防火墙基于传统防火墙的拓展能力,就是可以将以上的安全设备模块集成在一起&#xff0…

LeetCode-1486. 数组异或操作【位运算 数学】

LeetCode-1486. 数组异或操作【位运算 数学】 题目描述:解题思路一:暴力很简单。解题思路二:优化!时间复杂度:O(1)。注释丰富,明了。解题思路三:精简版! 题目描述: 给你…

通俗的理解网关的概念的用途(三):你的数据包是如何到达下一层的

其实,这一章我写不好,因为这其中会涉及到一些计算和一些广播等概念,本人不善于此项。在此略述,可以参考。 每台设备的不同连接在获得有效的IP地址后,会根据IP地址的规则和掩码的规则,在操作系统和交换机&a…

【吃透Java手写】3-SpringBoot-简易版-源码解析

【吃透Java手写】SpringBoot-简易版-源码解析 1 SpringbootDemo2 准备工作2.1 Springboot-my2.1.1 依赖2.1.2 SpringBootApplication2.1.3 SJBSpringApplication2.1.3.1 run方法 2.2 Springboot-user2.2.1 依赖2.2.2 UserController2.2.3 UserApplication 2.3 分析run方法的逻辑…

Codeforces Round 217 (Div. 2) A. Rook, Bishop and King(BFS)

Rook, Bishop and King 题面翻译 【题目描述】 佩蒂亚正在学习国际象棋。他已经学会如何移动王、车和象。让我们提示你如何移动国象棋子。棋盘有 64 64 64个棋格,呈 8 8 8\times8 88正方形。一个格子可以用 ( r , c ) (r,c) (r,c)来表示—— r r r指行&#xff…

乡村振兴的文化旅游融合:整合乡村文化资源与旅游资源,发展文化旅游产业,提升美丽乡村的文化内涵和旅游吸引力

一、引言 随着城市化进程的加速和人们精神文化需求的日益增长,乡村旅游逐渐成为旅游市场的新热点。乡村振兴战略的提出,为乡村旅游的发展提供了新的契机。在这一背景下,如何整合乡村文化资源与旅游资源,发展文化旅游产业&#xf…

postman常用功能超全使用教程

Postman 使用 一、Postman 简介 Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求(如:get/post/delete/put…等等),将请求数据发送至服务端,获取对应的响应结果。 二、Postman 功能简介 三、Postman 下载安装 Post…

crontab开启定时任务

linux上面可以使用crontab -e配置定时任务,但是一般需求进行一些配置才能使用,默认如下: crontab开启定时任务: 1.输入select-editor 2.选择 2. /usr/bin/vim.basic 有时候不需要第一步直接输入2就可以了,如下图所示 此时就可以在里面配置我们想要执行的定时任务…

适合年轻人的恋爱交友脱单软件有哪些?中国十大社交软件排行榜分享

交友始祖:Tinder 一直很受欢迎,可以向上扫给 super like (每日有一次免费机会)。如果双方互相 like,代表配对成功,就可以开始聊天。另外,每日有 10 个 top picks 供选择,你可以免费选一位 主力编外&#xf…

ETL免费工具kettle(PDI),安装和配置

起源: Kettle最早是一个开源的ETL工具,全称为KDE Extraction, Transportation, Transformation and Loading Environment。在2006年,Pentaho公司收购了Kettle项目,原Kettle项目发起人Matt Casters加入了Pentaho团队,成…

如何使用visual vm和jstat进行远程监控

如何使用visual vm和jstat进行监控 安装visual vm 好像从jdk某个版本开始,jdk的bin目录下就不自带jvisualvm了,需要从官网下载一个visual vm。 打开visual vm Local是你本地的,无需多言。 先准备下必备的插件 如何通过visual vm观测远程…

Windows程序设计课程作业-2(音乐文件播放功能)

目录 1、作业内容 要求1: 提示: 要求2: 提示: 作业提交方式: 2、主要思路 1)准备工作 2)提取音乐文件功能 3)选择音乐进行播放 4)异常信息进行处理 5)停止播…

Apinto下载安装以及集群部署总结

下载 下载官方提供的安装包安装(推荐) wget https://github.com/eolinker/apinto/releases/download/v0.13.3/apinto_v0.13.3_linux_amd64.tar.gz && tar -zxvf apinto_v0.13.3_linux_amd64.tar.gz && cd apinto 安装 先确保已经入解…