OAuth2四種認證模式概念理解

OAuth2中四種認證模式概念理解說明

這兩天在寫單點登錄的軟著材料,作爲一個前端開發,之前關注的一直都是前端實現登錄的邏輯,但是既然寫軟著,那隻能作爲一個整體來理解,而這一塊大部分的實現還是在後端(個人觀點),所以抽出兩天時間看了下後端的代碼,正好把相關的概念理解整理下:
這裏只是概念上的理解,沒有代碼實踐,後面有空最好還要調試代碼,實踐出真知嘛,要是有理解不對的地方歡迎指正。

整體流程

流程圖

整體流程說明

  1. 用戶打開客戶端,客戶端要求向資源所有者(即用戶)給予授權;
  2. 用戶同意授權;
  3. 客戶端得知用戶同意授權後,向授權服務器獲取授權;
  4. 授權服務器給予客戶端授權,並將授權碼(Access Token)即爲令牌下發給客戶端;
  5. 客戶端攜帶授權碼去請求資源服務器;
  6. 資源服務器將受限的資源開放給客戶端。

大多數情況下,認證服務器和資源服務者在一臺機器上,但是邏輯上屬於兩個概念,很多系統將其作爲單獨的微服務和其他資源服務區分開來。

OAuth2協議規定的4種授權類型

授權許可是表示客戶用來獲取訪問令牌的資源所有者授權的憑證。此規範協議規定了4種授權類型:

  • authorization code(授權碼模式)
  • implicit(簡化模式)
  • resource owner password credentials(密碼模式)
  • client credentials(客戶端模式)

授權碼模式

流程圖

授權碼模式流程說明

  1. 用戶訪問客戶端,客戶端通過用戶代理向認證服務器請求授權碼;
  2. 用戶同意授權;
  3. 認證服務器通過用戶代理返回授權碼給客戶端;
  4. 客戶端攜帶授權碼向認證服務器請求訪問令牌(AccessToken);
  5. 認證服務器返回訪問令牌;
  6. 客戶端攜帶訪問令牌向資源服務器請求資源;
  7. 資源服務器返回資源。

簡化模式

流程圖

簡化模式流程說明

  1. 用戶訪問客戶端,客戶端通過用戶代理向認證服務器請求授權碼;
  2. 用戶同意授權;
  3. 認證服務器返回一個重定向地址,該地址的url的Hash部分包含了令牌;
  4. 用戶代理向資源服務器發送請求,其中不帶令牌信息;
  5. 資源服務器返回一個網頁,其中包含的腳本可以獲取Hash中的令牌;
  6. 用戶代理執行腳本提取令牌;
  7. 用戶代理將令牌返回給客戶端;
  8. 客戶端攜帶令牌向資源服務器請求資源;
  9. 資源服務器返回資源。

密碼模式

流程圖

密碼模式流程說明

  1. 用戶向客戶端提供用戶名密碼;
  2. 客戶端將用戶名和密碼發給認證服務器請求令牌;
  3. 認證服務器確認無誤後,向客戶端提供訪問令牌;
  4. 客戶端攜帶令牌向資源服務器請求訪問資源;
  5. 資源服務器返回資源。

客戶端模式

流程圖

客戶端模式流程說明

  1. 客戶端向認證服務器進行身份認證,並要求一個訪問令牌;
  2. 認證服務器確認無誤後,向客戶端提供訪問令牌;
  3. 客戶端攜帶令牌向資源服務器請求訪問資源;
  4. 資源服務器返回資源。

參考資料

簡書介紹
實戰OAuth2博客
OAuth2介紹
博客介紹
博客介紹
ntianwei/p/9531091.html)
博客介紹

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章