1. 程式人生 > >OAuth2.0 學習(一) OAuth2.0 工作流程

OAuth2.0 學習(一) OAuth2.0 工作流程

重要術語 Authorization Server:授權伺服器,能夠成功驗證資源擁有者和獲取授權,並在此之後分發令牌的伺服器; Resource Server:資源伺服器,儲存使用者的資料資源,能夠接受和響應受保護資源請求的伺服器; Client:客戶端,獲取授權和傳送受保護資源請求的第三方應用; Resource Owner:資源擁有者,能夠對受保護資源進行訪問許可控制的實體; Protected Resource:受保護資源,能夠使用OAuth請求獲取的訪問限制性資源; Authorization Code:授權碼; Refresh Token:重新整理令牌; Access Token:訪問令牌。 核心工作流程
OAuth 為客戶端提供了一種代表資源擁有者訪問受保護資源的方法。在客戶端訪問受保護資源之前,它必須先從資源擁有者獲取授權(訪問許可),然後用訪問許可交換訪問令牌(Access Token,包含許可的作用域、持續時間和其它屬性等資訊)。客戶端通過向資源伺服器出示訪問令牌來訪問受保護資源。訪問令牌提供了一個抽象層,將不同的授權結構(如使用者名稱密碼)替換成資源伺服器可以理解的單一訪問令牌。這種抽象使得分發短期有效的訪問令牌成為可能,也使得資源伺服器不必理解多種多樣的授權機制。使用OAuth2.0 機制,進行認證授權,獲取訪問令牌,並通過訪問令牌來訪問受保護資源,如圖所示:



OAuth2.0 的工作流程簡述如下:
(1) 客戶端從資源擁有者(終端使用者)那裡請
求授權。授權請求能夠直接傳送給資源擁有者,或者
間接的通過授權伺服器傳送請求;
(2) 資源擁有者為客戶端授權,給客戶端傳送一個
訪問許可(Authorization Code);
(3) 客戶端出示自己的私有證書(client_id 和
client_secret)和上一步拿到的訪問許可,來向授權服務
器請求一個訪問令牌;
(4) 授權伺服器驗證客戶端的私有證書和訪問許
可的有效性,如果驗證有效,則向客戶端傳送一個訪
問令牌,訪問令牌包括許可的作用域、有效時間和一
些其他屬性資訊;
(5) 客戶端出示訪問令牌向資源伺服器請求
受保護資源;
(6) 資源伺服器對訪問令牌做出響應。