OAuth從1 0到2 1的發展之路

2022-09-21 22:03:18 字數 1704 閱讀 5350

2023年, oauth 授權規範 1.0 (rfc 5849) 版本發布, 2年後, 更簡單易用的 oauth 2.0 規範發布(rfc 6749), 這也是大家最熟悉並且在網際網路上使用程式設計客棧最廣泛的版本, 在2023年的時候, iphone 5 是全新的, 微軟最新的瀏覽器還是 ie9, 單頁面應用在當uihwqanffo時還被稱作 "ajax 應用", cors(跨域資源共享)還不是乙個w3c標準。

到現在, 網路和移動領域發生了巨大的變化, 當時發布的授權協議標準已經遠遠不能滿足現在的場景和需求, 為了應對這種不斷變化的局面, oauth 社群多年www.cppcns.com來一直在修補和擴充套件 oauth 規範, oauth 的格局也不斷擴大, 越來越多的圍繞 oauth 2.0 core 的擴充套件授權規範出現, 也讓 oauth 2.0 整體看起來就像乙個迷宮一樣。

在 oauth 2.0 核心規範 (rfc 6749)中, 定義了四種授權型別:授權碼、隱式、密碼和客戶端憑據, 如下:

相信大家都很熟悉, 在 oauth 2.0 中,最安全也是使用最普遍的就是授權碼模式, 而對於本地應用,移動應用來說, 通常會使用隱式和密碼授權, 這兩種本身就是不安全的, 因為這些屬於公開的客戶端, 本身沒有能力保護客戶端機密, 但是當時並沒有其它好的方案。

為了解決 oa 2.0 對公開客戶端的授權安全問題, pkce (rfc 6379)協議應運而生, 全稱是 proof key for code exchange,pkce 的原理是, 對於公共的客戶端, 如果不能使用客戶端秘鑰(client_secret), 那客戶端就提供乙個自建立的證明 (code_verifier) 給授權伺服器,其中使用了加密演算法, 授權伺服器通過它來驗證客戶端。

後來,"oauth 2.0 for native apps"(rfc 8252)規範發布,推薦原生應用也使用授權碼 + pkce。

隨著技術不斷地發展, 出現了裝置授權的場景, 這裡裝置指智慧型電視,印表機等, 和傳統的pc或者手機不同, 這種裝置是缺少瀏覽器或者鍵盤的,那 oauth 2.0 常規的授權模式肯定是不能滿足的, 於是就出現了裝置授權(device grant) 。

在 oauth 2.0 安全最佳實踐(security bcp)中, 棄用了隱式和密碼授權,並且推薦所有的客戶端都應該使用 authorization code + pk程式設計客棧ce 的組合。

最終, 調整後的 oauth 授權模式會更加精簡, 轉換成下面三種, 這也是 oauth 2.1 的思想, 參考安全最佳實踐(bcp),取其精華, 去其糟粕。

歸根結底, oauth 2.1 並不是要推翻 oauth 2.0,而是根據其安全最佳實踐(bcp), 移除不安全的授權流程, 並且對擴充套件協議進行整合, 讓原本複雜如迷宮的 oauth 2.0 規範成為更易用,更安全的授權規範。

參考資料

the oauth 1.0 protocol

the oauth 2.0 authorization framework

the oauth 2.1 authorization framework draft-ietf-oauth-v2-1-04

it's time for oauth 2.1

oauth 2.0 for native apps

oauth 2.0 device authorization grant

proof key for code exchange by oauth public clients

本文標題: oauth從1.0到2.1的發展之路

本文位址:

Linux網路之 從 C10K 到 DPDK

c10k 和 c1000k 的首字母 c 是 client 的縮寫。c10k 就是單機同時處理 1 萬個請求 併發連線 1 萬 的問題,而 c1000k 也就是單機支援處理 100 萬個請求 併發連線 100 萬 的問題。i o 的模型,在 c10k 以前,linux 中網路處理都用同步阻塞的方式,...

從韓劇中眼鏡的發展到軟體設計的發展。

今天有人看古裝韓劇,那裡面有個人戴的眼鏡很奇特 帽子上伸出乙個硬的東西把眼鏡往外撐著,然後左右耳朵分別掛一根軟的繩子把眼鏡拉住。眼鏡原來是這樣進化而來的?呵呵。古老的眼鏡確實有缺陷,需要額外的帽子的支援。眼鏡的發展歷程是不是也與軟體解耦的進化歷程類似?把古代的眼鏡和帽子解耦之後不就是現代的眼鏡和帽子...

從分歧到共識 疫情下的5G發展思考

新冠 疫情爆發以來,不少新技術正在輔助我們對抗疫情。剛剛商用不久的5g臨危受命,在醫療 防控 教育 等方面的應用受到了廣泛關注。一方面可以說是成績斐然,防疫一線處處有5g的身影,另一方面也還有一些遺憾,危難下才發現5g似乎來得有點晚。整體而言,這對於5g這一項全新的通訊技術而言,是一次難得的機遇。在...