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