OAuth 2.0
OAuth 2.0 是一種目前主流的授權框架,讓資源持有者可以藉由授權伺服器允許第三方應用程式來取得受到保護的資源,這也是目前 Web 開發最主流的安全認證方式。
OAuth 2.0 的誕生 — RFC 6749
RFC 6749 誕生之前,並沒有像現在區分成多個角色負責授權、資源管理等工作,而是在開發時讓開發者實作複雜的密碼學演算法對網址、參數簽章,這不但影響了開發過程,更受到了當時硬體上的限制,因此後續才有 OAuth 2.0 的誕生。
Role
OAuth 2.0 內定義了幾種不同的角色:
- Resource Owner(資源持有者):擁有存取資源權限的實體,一般是指 User。
- Resource Server(資源伺服器):存放受保護資料的伺服器,並回應帶有 Access Token 的請求。
- Client(客戶端):指使用者發起請求的應用程式,通常為 Web 或是 Mobile App。
- Authorization Server(授權伺服器):負責驗證使用者身分、發放授權碼以及 Access Token。
驗證流程

完整的驗證流程分成了幾個步驟:
- Client 向 Resource Owner 要求授權。
- Resource Owner 同意並給予 Authorization Grant(授權許可)。
- Client 透過 Authorization Grant 向 Authorization Server 申請 Access Token。
- Authorization Server 驗證 Authorization Grant 無誤後回傳 Access Token。
- Client 拿著 Access Token 向 Resource Server 請求資源。