OAuth2協議簡介

2021-09-08 08:20:57 字數 1263 閱讀 4760

例如我在qq上有很多的,分別儲存在不同的資料夾中,現在有乙個第三方登入需要訪問我的其中某乙個檔案時ru我需要怎麼做呢?如果我直接將我qq的賬號、密碼直接給第三方應用,那它就可以訪問我的全部,但是有的我是不想給他的!而且如果我只是想讓他訪問一段時間,過了這個時間之後,我就不想讓第三方訪問了,這個時候那我只能去修改密碼!想想這個工作就很繁瑣而且還不安全。

第三方應用client:獲得資源所有者的授權後可以去訪問資源所有者的資源。

認證伺服器(authorization server):認證資源所有著的身份,為資源所有者提供授權審批流程,並最終頒發授權令牌(access token)。

資源伺服器:存放具體的資源,並處理訪問資源的路徑;例如qq空間的相簿

1. client請求資源所有者的授權,請求中一般包含:要訪問的資源路徑,操作型別,client的身份等資訊。

2. 資源所有者批准授權,並將「授權證據」傳送給client。

3. client向認證伺服器請求「訪問令牌(access token)」。此時,client需向認證伺服器提供資源所有者的「授權證據」,以及client自己身份的憑證。

4. 認證伺服器驗證通過後,向client返回「訪問令牌」。訪問令牌也有多種型別,若為bearer型別,那麼誰持有訪問令牌,誰就能訪問資源。

5.認證伺服器攜帶「訪問令牌」訪問資源伺服器上的資源。在令牌的有效期內,client可以多次攜帶令牌去訪問資源。

6.資源伺服器驗證令牌的有效性,比如是否偽造、是否越權、是否過期,驗證通過後,才能提供服務。

根據上訴第二步同意授權的方式可以分為四種授權模式:授權碼模式(authorization code),簡化模式(implicit),密碼模式(resource owner password credentials),客戶端模式(client credentials)。

現在主流的提供oauth的提供商大都是授權碼模式,那麼下面就說一下授權碼模式的流程:

授權碼模式的特點:1.使用者授權是在認證伺服器上完成的;2.使用者同意授權後,認證伺服器不是馬上返回最終的令牌,而是攜帶的授權碼,在通過第三方伺服器攜帶授權碼去換令牌,這就需要第三方應用需要有自己伺服器。

OAuth2協議解讀(二)

目錄 1.簡介 在傳統的客戶端 伺服器認證模型下,客戶端利用資源擁有者的證書來通過伺服器的認證,請求受限資源。為了使得第三方應用獲取受限資源的許可權,資源擁有者與第三方應用共享證書。但是這種方式帶來下述的問題和限制 第三方應用需要儲存資源擁有者的證書以備不時之需,通常是明文密碼。儘管密碼驗證有它固有...

OAuth2 單點登入

簡介 oauth open authorization 是乙個開放標準,允許使用者授權第三方應用訪問他們儲存在另外的服務提供者上的資訊,而不需要將使用者名稱和密碼提供給第三方應用。oauth2是oauth協議的延續版本,oauth1已經被廢棄,現在oauth2是用於授權的行業標準協議。1.四個角色 ...

OAuth2 模式介紹

1.憑證 客戶端 模式 allowedgranttypes granttypes.clientcredentials 應用場景 客戶端 服務與服務之間的互動訪問資源,token代表客戶端的請求,而不是使用者,攜帶客戶端註冊時候的貧據進行認證,獲取token,使用過程 會向token endpoint...