OAuth 2.0只是授權協議,OIDC才是認證授權協議

      網友投稿 1166 2025-03-31

      上一文我們對Keycloak保護Spring Boot應用進行了實操。讓大家見識到了Keycloak的強大。為了掌握Keycloak就必須對OpenID Connect(OIDC)協議進行了解。OIDC是OAuth 2.0的一個擴展協議。它為什么要擴展OAuth 2.0?在搞清楚這個問題之前我們需要再回顧一下OAuth 2.0協議。

      OAuth 2.0

      以往胖哥也說了不少OAuth 2.0協議相關的東西,但是依然讓大家云里霧里。所以今天我們換一個角度來說一說OAuth 2.0。如今利用這個協議搞開放API的越來越多了。

      為什么要開放授權

      假如我開發了一個互聯網照片存儲服務,這里叫它XX相冊存儲服務,經過精心的運營用戶量達到了一定的規模,這個時候往往會進入一個瓶頸期,我希望進一步提升這個品牌的知名度以改變這種現狀。而另一個第三方照片打印平臺也看中了我的獨特優勢,希望我能開放一些功能出來給他們調用。

      強強聯合,做大做強!我覺得這是一個好主意,它用了我的開放服務后也可以幫我引流用戶、擴大我的影響力。從用戶角度來看,可以同時享受照片云儲存、云打印服務是非常具有吸引力的。所以開放一些功能給第三方是非常劃算的。

      客戶端授權接入

      雖然開放授權的好處很多,但是也不能沒有規則。用戶的隱私保護、數據安全都是非常重要的。經過仔細斟酌,我確定了下面幾條開放的原則:

      第三方需要在我的平臺開個戶,這樣方便我對第三方平臺進行管理和審計。哪個第三方不合規我就限流甚至封停其資格。

      明確開放的接口類目并對其進行權限分類。用來滿足不同層次的第三方。有的第三方只能獲取用戶信息;有的第三方可以調用云打印。方便后續收費恰飯。

      調用這些服務必須征求照片的實際擁有者(資源擁有者)同意,這是一個法律問題。獲取用戶的信息和資源必須征得用戶同意才行。

      于是第三方打印平臺按照我制定的規則提請了一個接入申請,審核通過后我給他發了一套客戶端憑證,包含了clientId和對應的secret,并明確告知第三方可以申請哪些功能,然后第三方就可以根據API文檔進行開發了。

      授權流程

      用戶登錄了照片打印平臺,發現居然還提供從XX相冊存儲服務拉取照片打印的功能。便興沖沖地嘗試了一下 。大致的過程是這樣的:

      用戶告訴打印平臺: 聽說你能從XX相冊存儲服務把我照片給拉過來打印,給我操作一下。

      打印平臺回復用戶:沒問題,不過我得先給XX相冊存儲服務說一下。我得帶上我自己的標識clientId,還有你請求的事項權限scopes。以及遵循的流程類型authorizationGrantType。為了安全起見我們最好弄個state隨機碼防止中間人攻擊。XX相冊存儲服務會通過我提供的專線redirectUri進行給您確認,您到時候確認一下。

      XX相冊存儲服務向用戶確認:您是不是要授權給XX打印平臺拉取您的照片?

      用戶確認的話需要向XX相冊存儲服務提供自己的用戶憑證并確認;否則拒絕,流程到此結束。

      OAuth 2.0只是授權協議,OIDC才是認證授權協議

      XX相冊存儲服務收到用戶的確認信息后回復打印平臺: 用戶確認過了,給您一個臨時憑證code(authorizationGrantType=code) ,你來換Token然后就可以憑此拉取該用戶的照片了。

      打印平臺換取了Token成功地拉取了該用戶的照片并打印。

      用戶不用來回奔波就享受了跨平臺云打印服務,用戶體驗度得到了提升。

      OIDC的產生背景

      OAuth 2.0協議只解決了授權的問題,客戶端只要得到了資源所有者的授權就能訪問資源。OAuth 2.0本身并沒有提供用戶認證的規范。

      OAuth 2.0本身無法證明資源所有者就是正確的資源所有者。OAuth 2.0中涉及的用戶認證都建立在其它認證的可靠性之上,OAuth 2.0只消費認證的結果并不參與認證的流程。

      基于這個原因OpenID Connect誕生了。它和OAuth 2.0的關系是這樣的:

      interface?OIDC?extends?OAuth2{ ???boolean?authentication?() }

      也就是說OIDC 在OAuth 2.0 的基礎之上增加一個對資源所有者的認證流程,實現了真正意義上的認證授權。基于篇幅的原因,我會在后續系列文章中和大家共同學習OIDC協議。如果你有什么疑問可以留言討論。

      開源認證授權管理平臺Keycloak初體驗

      2021-07-07

      Keycloak簡單幾步實現對Spring Boot應用的權限控制

      2021-07-09

      TCP/IP

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:庫存管理進銷存app(3分鐘之前已更新)
      下一篇:保護工作表
      相關文章
      亚洲AV无码AV吞精久久| 亚洲 欧洲 日韩 综合在线| 亚洲国产日韩在线观频| 国产亚洲精aa在线看| 亚洲精品日韩专区silk| 亚洲色精品aⅴ一区区三区| 亚洲中文字幕无码久久2020| 亚洲日韩AV一区二区三区四区| 亚洲伊人久久大香线蕉影院| 亚洲欧洲视频在线观看| 久久精品国产亚洲精品2020| 日本亚洲视频在线| 亚洲AV无码乱码在线观看富二代| 国产亚洲?V无码?V男人的天堂 | 久久久久精品国产亚洲AV无码| 亚洲国产精品网站久久| 亚洲制服丝袜在线播放| 亚洲国产区男人本色在线观看| youjizz亚洲| 亚洲AV无码一区二区乱子仑| 日韩国产精品亚洲а∨天堂免| 国产AV无码专区亚洲AV麻豆丫| 亚洲国产成人a精品不卡在线| 亚洲国产成人精品无码久久久久久综合| 国产成人亚洲精品电影| 亚洲视频在线免费| 奇米影视亚洲春色| 国产日韩亚洲大尺度高清| 亚洲国产人成网站在线电影动漫| 久久精品国产亚洲AV高清热| 亚洲视频一区在线播放| 亚洲综合中文字幕无线码| 亚洲成av人片天堂网无码】| 亚洲成AⅤ人影院在线观看| 国产精品V亚洲精品V日韩精品 | 久久精品国产96精品亚洲 | 亚洲一区二区三区在线网站| 亚洲日韩看片无码电影| 亚洲精品国产精品乱码视色| 久久精品国产亚洲AV忘忧草18| 亚洲精品美女久久久久9999|