您好,登錄后才能下訂單哦!
OAuth3 的概念
OAuth是一個關于授權的開放網絡標準,OAuth3是其2.0版本。
它規定了四種操作流程(授權模式)來確保安全
應用場景有第三方應用的接入、微服務鑒權互信、接入第三方平臺、第一方密碼登錄等
Java王國中Spring Security也對OAuth3標準進行了實現。
OAuth3授權模式
OAuth3定義了四種授權模式(授權流程)來對資源的訪問進行控制
無論哪個模式(流程)都擁有三個必要角色:客戶端
、授權服務器
、資源服務器
,有的還有用戶(資源擁有者)
,下面簡單介紹下授權流程
授權碼模式(Authorization Code Grant)
授權碼模式是OAuth3目前最安全最復雜的授權流程,先放一張圖,稍做解釋
如上圖,我們可以看到此流程可大致分為三大部分
整體上來說,可以用一句話概括授權碼模式授權流程
客戶端換取授權碼,客戶端使用授權碼換token,客戶端使用token訪問資源
接下來對這三部分進行一些說明 :
前提條件:
Client Side
客戶端換取授權碼
這個客戶端可以是瀏覽器,
client_id + client_secret + 授權模式標識(grant_type) + 回調地址(redirect_uri)
拼成url訪問授權服務器授權端點
用戶登錄
(此時用戶提交的密碼等直接發到授權服務器,進行校驗)用戶授權
完成返回授權碼到回調地址
Server Side
客戶端使用授權碼換token
Check Access Token
客戶端使用token訪問資源
這里的說明省去了一些參數,如scope(請求token的作用域)、state(用于保證請求不被CSRF)、redirect_uri(授權服務器回調uri),先理解概念,實現的時候再去要求
隱式授權模式(Implicit Grant)
隱式授權模式大致可分為兩部分:
用一句話概括隱式授權模式授權流程
客戶端讓用戶登錄授權服務器換token,客戶端使用token訪問資源
Client Side
客戶端讓用戶登錄授權服務器換token
client_id + 授權模式標識(grant_type)+ 回調地址(redirect_uri)
拼成url訪問授權服務器授權端點
訪問回調地址
返回token給客戶端Check Access Token
客戶端使用token訪問資源
密碼模式(Resource Owner Password Credentials Grant)
密碼模式大體上也分為兩部分:
一句話概括用戶名密碼模式流程:
用戶在客戶端提交賬號密碼換token,客戶端使用token訪問資源
Client Side
用戶在客戶端提交賬號密碼換token
Check Access Token
客戶端使用token訪問資源
客戶端模式(Client Credentials Grant)
客戶端模式大體上分為兩部分:
一句話概括客戶端模式授權流程:
客戶端使用自己的標識換token,客戶端使用token訪問資源
Server Side
客戶端使用自己的標識換token
頒發token端點
Check Access Token
客戶端使用token訪問資源
OAuth3授權模式的選型
考慮到授權場景的多樣性,可以參考以下兩種選型方式
按授權需要的多端情況
按客戶端類型與所有者
后記
學習OAuth3有一段時間了,把學到的知識分享出來,行文中難免有錯誤,如果發現還請留言指正,謝謝合作
參考文章與資料:
https://time.geekbang.org/course/intro/84 作者:楊波
https://blog.csdn.net/sinat_25295611/article/details/84980987 作者:Kayfen
How OAuth 2.0 works and how to choose the right flow 作者:Lorenzo Spyna
原文出處https://www.cnblogs.com/hellxz/p/oauth3_process.html
到此這篇關于OAuth 2.0 概念及授權流程梳理的文章就介紹到這了,更多相關OAuth3.0 授權流程內容請搜索億速云以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持億速云!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。