OAuth 2.0


OAuth 2.0 是一種目前主流的授權框架,讓資源持有者可以藉由授權伺服器允許第三方應用程式來取得受到保護的資源,這也是目前 Web 開發最主流的安全認證方式。

OAuth 2.0 的誕生 — RFC 6749

RFC 6749 誕生之前,並沒有像現在區分成多個角色負責授權、資源管理等工作,而是在開發時讓開發者實作複雜的密碼學演算法對網址、參數簽章,這不但影響了開發過程,更受到了當時硬體上的限制,因此後續才有 OAuth 2.0 的誕生。

Role

OAuth 2.0 內定義了幾種不同的角色:

驗證流程

image.png

完整的驗證流程分成了幾個步驟:

  1. Client 向 Resource Owner 要求授權。
  2. Resource Owner 同意並給予 Authorization Grant(授權許可)。
  3. Client 透過 Authorization Grant 向 Authorization Server 申請 Access Token。
  4. Authorization Server 驗證 Authorization Grant 無誤後回傳 Access Token。
  5. Client 拿著 Access Token 向 Resource Server 請求資源。