寫在前面:根據OAuth 2.0 官方文檔,由兩個翻譯器翻譯後整理成人話,記錄下來。
OAuth 2.0 授權框架
概述:
OAuth 2.0授權框架支持第三方應用程序以獲取對HTTP服務的有限訪問,可以在通過編排審批交互來代表資源所有者在資源所有者和HTTP服務之間,或者通過允許代表第三方應用程序獲取訪問權限。
介紹:
在傳統的客戶機-服務器身份驗證模型中,客戶機請求訪問受限資源(受保護資源)通過使用資源所有者的資格證書。
爲了讓第三方應用程序能夠訪問受限資源,資源所有者與共享其憑據第三方。這會產生一些問題和限制:
- 需要第三方應用程序來存儲資源所有者的憑證供將來使用,通常是密碼明文。
- 服務器需要支持密碼身份驗證,儘管密碼固有安全弱點。
- 第三方應用程序對資源所有者的資源訪問能力過於廣泛,使資源所有者沒有限制持續時間或訪問資源。
- 資源所有者無法單個撤銷第三方的訪問而不用對所有第三方訪問的進行撤銷,撤銷必須通過修改第三方的密碼方式進行。
- 任何第三方應用程序的受損,會導致最終用戶的密碼和受其保護的所有數據受損。
OAuth通過引入授權層來解決這些問題將客戶端的角色與資源所有者的角色分離。在OAuth中,客戶端請求由資源所有者託管在資源服務器上的受控資源,並且發行了一套與資源所有者不同的憑證。
而不是使用資源所有者的憑證來訪問受保護的資源,客戶端獲得一個訪問字符串令牌(字符串中記錄令牌的特定範圍、生存期限和其他訪問屬性)。訪問令牌由資源所有者批准頒發。客戶端使用訪問令牌去訪問由資源服務器承載的受保護資源。
OAuth 2.0 定義了四個角色:
- 資源所有者
- 資源服務器
- 客戶端
- 授權服務器