1. 程式人生 > 實用技巧 >SpringSecurity整合OAuth2

SpringSecurity整合OAuth2

本文參考:https://mrbird.cc/Spring-Security-OAuth2-Guide.html

什麼是OAuth

OAuth 2.0 的標準是 RFC 6749 檔案。

OAuth(開放授權)是一個開放標準,允許使用者授權第三方移動應用訪問他們儲存在另外的服務提供者上的資訊,而不需要將使用者名稱和密碼提供給第三方移動應用或分享他們資料的所有內容。

具體概述參考:點選這裡

OAuth的四種授權模式

參考這裡

OAuth相關的名詞:(以在Chrome上經QQ授權登入B站瀏覽視訊為例)

  1. Third-party application 第三方應用程式:B站
  2. HTTP service HTTP服務提供商:QQ(騰訊)
  3. Resource Owner 資源所有者:QQ登入者
  4. User Agent 使用者代理:Chrome瀏覽器;
  5. Authorization server 認證伺服器:QQ提供的第三方登入服務;
  6. Resource server 資源伺服器:B站提供的服務,比如高清視訊,彈幕傳送等(需要認證後才能使用)。

認證伺服器和資源伺服器可以在同一臺伺服器上,比如前後端分離的服務後臺,它即供認證服務(認證伺服器,提供令牌),客戶端通過令牌來從後臺獲取服務(資源伺服器);它們也可以不在同一臺伺服器上,比如上面第三方登入的例子。

授權方式

授權碼(authorization code)方式,指的是第三方應用先申請一個授權碼,然後再用該碼獲取令牌。

授權碼模式是最能體現OAuth2協議,最嚴格,流程最完整的授權模式,它適用於那些有後端的 Web 應用。授權碼通過前端傳送,令牌則是儲存在後端,而且所有與資源伺服器的通訊都在後端完成。這樣的前後端分離,可以避免令牌洩漏。