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):用于增強授權碼流程的安全性,防止授權碼攔截攻擊。

  • 訪問令牌的生命周期管理:推薦使用短期訪問令牌和刷新令牌。




本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/9905.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/9905.shtml
英文地址,請注明出處:http://en.pswp.cn/web/9905.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

什么是云原生架構,我們該如何做好云原生安全,引領云計算時代的應用程序革新

隨著云計算技術的飛速發展,企業面臨著前所未有的機遇和挑戰。在這個高度競爭的市場中,傳統的應用程序架構因其僵化、不易擴展和維護的特點,已難以滿足當今企業對靈活性、可伸縮性和高效性的追求。在這樣的背景下,云原生架構應運而…

git rebase 合并當前分支的多個commit記錄

git rebase 合并當前分支的多個commit記錄 git rebase 相關的選項和用法step1:找到想要合并的 commitstep2. 使用 rebase -istep3. 編輯提交歷史:step4.編輯合并后的提交信息step5.完成 rebase 過程:step6.**推送更新:**step6.**再…

使用ollama離線部署小模型

在有網的機器下載ollama和模型 啟動服務 docker run --rm -it -v ./ollama:/root/.ollama -p 8000:11434 --name ollama ollama/ollama下載模型 docker exec -it ollama ollama pull qwen:0.5b將鏡像和ollama目錄復制到離線的機器中 docker啟動ollama服務 驗證 curl ht…

FFmpeg常用API與示例(三)—— 音視頻解碼與編碼

編解碼層 1.解碼 (1) 注冊所有容器格式和 CODEC:av_register_all() (2) 打開文件:av_open_input_file() (3) 從文件中提取流信息:av_find_stream_info() (4) 窮舉所有的流,查找其中種類為 CODEC_TYPE_VIDEO (5) 查找對應的解碼器:avcodec_find_decoder() (6) …

C++ 實現以xml的格式寫入文件

C XML類 該類主要將xml中的標簽分為兩類&#xff0c;無內容標簽統一稱為父標簽&#xff0c;有內容的就以鍵值對的方式直接輸出。 后面可能會優化通過函數參數的方式管控層級關系&#xff0c;現在是通過類里自動記錄層級深度來表示的。 #include <fstream> #include <…

【QT教程】QT6硬件圖形界面編程 QT硬件編程

QT6硬件圖形界面編程 使用AI技術輔助生成 QT界面美化視頻課程 QT性能優化視頻課程 QT原理與源碼分析視頻課程 QT QML C擴展開發視頻課程 免費QT視頻課程 您可以看免費1000個QT技術視頻 免費QT視頻課程 QT統計圖和QT數據可視化視頻免費看 免費QT視頻課程 QT性能優化視頻免費看…

數據結構-二叉樹結尾+排序

一、二叉樹結尾 1、如何判斷一棵樹是完全二叉樹。 我們可以使用層序遍歷的思路&#xff0c;利用一個隊列&#xff0c;去完成層序遍歷&#xff0c;但是這里會有些許的不同&#xff0c;我們需要讓空也進隊列。如果隊列里到最后只剩下空那么這棵樹就是完全二叉樹。具體的實現如下…

js 數據格式轉換,對象轉數組,數組轉對象

1.對象轉數組 // 對象obj轉換成數組格式 let obj { orgCode:分局編碼, alertId:告警ID, name:告警名稱 } let arr [] for(let key in obj) { console.log(11,key,obj[key]); // 定義一個對象&#xff0c;賦值 let o { id: key, // key是obj對象的鍵值 label: obj[key] …

學習Vue 3.0中的onMounted和onUnmounted鉤子函數

學習Vue 3.0中的onMounted和onUnmounted鉤子函數 一、什么是onMounted和onUnmounted&#xff1f;二、如何使用onMounted和onUnmounted&#xff1f;1、使用onMounted2、使用onUnmounted 三、總結 一、什么是onMounted和onUnmounted&#xff1f; Vue 3.0帶來了許多令人興奮的新特…

Modal h函數寫法

Modal h函數寫法 if (res.data.flag) {const ocapWarn res.data.ocaplList;Modal.warning({title: "提示",content: h("div", {}, [ocapWarn.map((item, index) > {return h("div", {}, [h("p",${index 1}、${item.defectItem}(…

IntersectionObserver對象

IntersectionObserver對象 IntersectionObserver對象&#xff0c;從屬于Intersection Observer API&#xff0c;提供了一種異步觀察目標元素與其祖先元素或頂級文檔視窗viewport交叉狀態的方法&#xff0c;祖先元素與視窗viewport被稱為根root&#xff0c;也就是說Intersectio…

c#---多態

在 C#語言中體現多態有三種方式&#xff1a;虛方法&#xff0c;抽象類&#xff0c; 接口 一、虛方法 什么是虛方法&#xff1f; 在父類中使用 virtual 關鍵字修飾的方法&#xff0c; 就是虛方法。在子類中可以使用 override 關鍵字對該虛方法進行重寫。 class Animal {public…

android apk沒有源碼如何修改程序

如果您擁有一個APK文件但沒有源代碼&#xff0c;您可以嘗試以下幾種方法來進行修改&#xff1a; 反編譯APK&#xff1a;使用工具如apktool對APK文件進行反編譯&#xff0c;這將為您提供源代碼和資源文件。 動態調試&#xff1a;使用調試工具連接設備或模擬器&#xff0c;并動態…

重裝前端整體流程

用戶管理 --匯總 -- 明細-CSDN博客 一、node 這個看環境變量 2023最新版Node.js下載安裝及環境配置教程&#xff08;非常詳細&#xff09;從零基礎入門到精通&#xff0c;看完這一篇就夠了_nodejs安裝及環境配置-CSDN博客 配置到國內鏡像的時候&#xff0c;去看&#xff0c;淘…

理解固化的Maven依賴:spring-boot-starter-parent 與 spring-boot-dependencies

目錄 理解固化的Maven依賴&#xff1a;spring-boot-starter-parent 與 spring-boot-dependencies1. spring-boot-starter-parent1.1 簡介1.2 特點 2. spring-boot-dependencies2.1 簡介2.2 特點 3. 異同點對比3.1 相同點3.2 不同點案例一&#xff1a;使用 spring-boot-starter-…

Java方法的重載

方法重載 1. 為什么需要方法重載 public class TestMethod{public static void main (String[] args){int a 10;int b 20;int ret add(a,b);System.out.println("ret "ret);double a2 10.5;double b2 20.5;double ret2 add(a2,b2);System.out.println("…

《QT實用小工具·六十二》基于QT實現貝塞爾曲線畫炫酷的波浪動畫

1、概述 源碼放在文章末尾 該項目實現了通過貝塞爾曲線畫波浪動畫&#xff0c;可控制 顏色密度速度加速度 安裝與運行環境 語言&#xff1a;C 框架&#xff1a;Qt 11.3 平臺&#xff1a;Windows 將屏幕水平平均分為10塊&#xff0c;在一定范圍內隨機高度的12個點&#xff08;…

飛天使-k8s知識點29-kubernetes安裝1.28.0版本

文章目錄 選用版本初始化服務器,自己修改里面的ipreboot haproxy安裝 &#xff0c;可以參考我之前寫的內核參數調整&#xff0c;安裝docker 安裝cri-dockerd開始安裝集群工具下載鏡像以及啟用完畢之后 此時的coredns 不通結果展示 選用版本 k8s 1.24版本之前還可以使用docker&…

【初階數據結構】順序表OJ題講解

前言 &#x1f4da;作者簡介&#xff1a;愛編程的小馬&#xff0c;正在學習C/C&#xff0c;Linux及MySQL。 &#x1f4da;本文收錄與初階數據結構系列&#xff0c;本專欄主要是針對時間、空間復雜度&#xff0c;順序表和鏈表、棧和隊列、二叉樹以及各類排序算法&#xff0c;持…

基于ambari hdp的kafka用戶授權讀寫權限

基于ambari hdp的kafka用戶授權讀寫權限 版本Kafka 2.0.0添加自定義配置修改admin密碼重啟kafka授權讀取授權寫入有效通配符部分舉例 版本Kafka 2.0.0 添加自定義配置 authorizer.class.name kafka.security.auth.SimpleAclAuthorizer super.users User:admin allow.everyo…