OAuth 2.0 和 OAuth 2.1

2024-05-11 00:04
文章标签 2.0 2.1 oauth

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

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




这篇关于OAuth 2.0 和 OAuth 2.1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/977943

相关文章

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

【2.1 深度学习中的感知机是什么】

2.1 深度学习中的感知机是什么 深度学习是机器学习的一个分支,它模拟人脑的工作方式来处理数据,尤其是通过神经网络的结构来自动提取数据的特征并进行分类、回归或其他复杂的任务。在深度学习的早期发展中,许多基础概念和模型为后续的复杂网络奠定了基础。其中,**感知机(Perceptron)**是一个非常重要的基础模型,它实际上是神经网络和深度学习的前身之一。 感知机的基本概念 感知机是一种二分

OpenGL ES 2.0渲染管线

http://codingnow.cn/opengles/1504.html Opengl es 2.0实现了可编程的图形管线,比起1.x的固定管线要复杂和灵活很多,由两部分规范组成:Opengl es 2.0 API规范和Opengl es着色语言规范。下图是Opengl es 2.0渲染管线,阴影部分是opengl es 2.0的可编程阶段。   1. 顶点着色器(Vert

Node.js和vue3实现GitHub OAuth第三方登录

Node.js和vue3实现GitHub OAuth第三方登录 前言 第三方登入太常见了,微信,微博,QQ…总有一个你用过。 在开发中,我们希望用户可以通过GitHub账号登录我们的网站,这样用户就不需要注册账号,直接通过GitHub账号登录即可。 效果演示 注册配置 GitHub 应用 1.首先登录你的GitHub然后点击右上角的头像->点击进入Settings页面 2.在

【AI大模型应用开发】2.1 Function Calling连接外部世界 - 入门与实战(1)

Function Calling是大模型连接外部世界的通道,目前出现的插件(Plugins )、OpenAI的Actions、各个大模型平台中出现的tools工具集,其实都是Function Calling的范畴。时下大火的OpenAI的GPTs,原理就是使用了Function Calling,例如联网检索、code interpreter。 本文带大家了解下Function calling,看

QT项目实战之音乐播放器2.0版本

该版本相较于1.0版本最主要的不同在于连接数据库实现类似于歌曲收藏和取消收藏的功能。 详细情况看我的这篇文章http://t.csdnimg.cn/WS5s8。 效果展示 VSMyMusicShow2.0 define.h UseMySQL.h   musicInfo.h   VSMyMusicPlayer.h

解决OAuth Token,点击退出登录报404问题

首先,认证服务器发送请求 http://auth.test.com:8085/logout?redirect_uri=http://admin.test.com:8080’ 退出后报404无法跳转到网站首页,这个时候增加一个参数redirect_uri指定退出成功后跳转的路径,因为是自定义的,所以需在认证服务器做一些处理 找到源码默认实现接口DefaultLogoutPageGeneratingF

MemSQL Start[c]UP 2.0 - Round 1A(构造)

题目链接:http://codeforces.com/problemset/problem/452/A 解题思路: 打个表暴力查找匹配。 完整代码: #include <algorithm>#include <iostream>#include <cstring>#include <complex>#include <cstdio>#include <strin

【深度学习 走进tensorflow2.0】TensorFlow 2.0 常用模块tf.config

无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。人工智能教程 本篇文章将会教大家如何 合理分配显卡资源,设置显存使用策略。主要使用tf.config模块进行设置。下面我们一起了解下具体用法和例子。 一、指定当前程序使用的 GPU 例如,在一台具有 4 块 GPU 和一个 C

2.1ceph集群部署准备-硬件及拓扑

硬件配置及建议 时至今日,ceph可以运行在各种各样的硬件平台上,不管是传统的x86架构平台(intel 至强系列、基于amd的海光系列等),还是基于arm的架构平台(比如华为鲲鹏),都可以完美运行ceph集群,展现了其强大的适应能力。 ceph的不同组件对硬件的需求有些许不同,下面是官方推荐的硬件要求: 组件资源最低配置要求OSD处理器最少1 core每200-500 MB/s最少1 co