OAuth 2 0 認證框架介紹

2021-09-01 08:43:59 字數 1934 閱讀 9661

1.  介紹

在傳統的客戶端-伺服器認證模式中,當客戶端請求訪問伺服器上受限制(受保護)的資源時,要通過伺服器檢查他是否有資源擁有著的證書來鑑定。為了讓第三方應用能夠訪問受保護的資源,資源擁有者將他的證書分享給第三方應用,這就產生了如下幾個問題和侷限:

o第三方應用必須儲存資源擁有者的證書以備將來所用,典型的是一段明文密碼。

o伺服器必須提供密碼驗證支援,儘管密碼驗證一直存在安全漏洞。

o第三方應用獲得了超出訪問資源擁有者的保護資源,使得資源擁有者無力對資源的訪問時段或對資源的子集訪問進行    限制。

o資源擁有者無法吊銷單個第三方應用的訪問許可權,除非他吊銷所有應用的訪問許可權,並修改密碼。

o 危害任何第三方應用的結果就會危害終端使用者的密碼和通過該密碼保護的所有資料。

oauth 通過是引進乙個認證層並將客戶端資源擁有者的角色分離來解決上述問題。在oauth中,客戶端請求訪問由資源擁有者掌控並由資源伺服器託管的資源,並產生一套不同於資源擁有者的證書。

不是用資源擁有者的證書來訪問受保護資源,客戶端獲得乙個訪問令牌——一段用來表明特定範圍,生命週期,以及其他訪問屬性的字串。訪問令牌是通過認證伺服器在經過資源擁有者同意後發布給第三方客戶端的。客服端通過訪問令牌訪問經資源伺服器託管的是受保護資源。

例如,乙個終端使用者資源擁有者)可以授權乙個列印服務客戶端)訪問她放在分享伺服器資源伺服器)上的受保護資源)。不用將她的使用者名稱和密碼分享給列印服務,而是直接在乙個分享伺服器所信任的伺服器認證伺服器)上做認證,該伺服器分配給列印服務一組特定委託的證書(訪問令牌)。

這份宣告是設計在http上的應用,oauth在非http協議上的應用超出本宣告的範圍。

1.1. 角色

oauth定義了四個角色:

資源擁有者

能夠對的受保護資源的訪問做授權的實體。當資源擁有者乙個人的時候,它對指的是乙個終端使用者

資源伺服器

對受保護資源進行託管的伺服器,能夠接受和響應使用訪問令牌訪問受保護資源的請求。

客服端認證伺服器

該伺服器在客服端經資源擁有者鑑定成功並獲得授權後給其發放訪問令牌。

OAuth2 0認證授權

授權碼模式 authorization code 是功能最完整 流程最嚴密的授權模式。它的特點就是通過客戶端的後台伺服器,與 服務提供商 的認證伺服器進行互動。client id x client secret x response type 表示授權型別,必選項,此處的值固定為 code clie...

理解OAuth2 0認證

oauth協議為使用者資源的授權提供了乙個安全的 開放而又簡易的標準。與以往的授權方式不同之處是oauth的授權不會使第三方觸及到使用者的帳號資訊 如使用者名稱與密碼 即第三方無需使用使用者的使用者名稱與密碼就可以申請獲得該使用者資源的授權,因此oauth是安全的。oauth是open author...

OAuth 2 0授權框架

背景介紹 oauth2.0授權框架支援第三方應用程式以獲取對http服務的有限訪問權,通過協調批准互動來代表資源所有者,在資源所有者和http服務之間,或者通過允許第三方應用程式代表自己獲取訪問許可權。這個規範取代並淘汰了所描述的oauth1.0協議 一 傳統模式的身份驗證模型 在傳統的客戶端 伺服...