Oauth認證簡介

  Oauth是什麼:web

  1.Oauth是一種安全認證的協議;安全

  2.Oauth爲用戶資源的受權提供了一個安全的、開放而又簡易的標準;ide

  3.Oauth的受權不會使第三方觸及到用戶的帳號信息(用戶名和密碼)。網站

    好比說新浪微博開放平臺屬於第一方,新浪微博用戶屬於第二方,則第三方就能夠是開發者開發的新浪微博客戶端應用。第三方的應用不須要接受用戶的用戶名和密碼,用戶名和密碼只提交給新浪微博開發平臺,而不會提交給第三方的應用,即第三方無需使用用戶的用戶名和密碼就能夠申請該用戶資源的受權,所以Oauth是安全的。視頻

  Oauth當中的角色:資源

  1.Service Provider(服務提供方):開發

    服務提供方一般是網站,在這些網站當中存儲着一些受限制的資源,如照片、視頻、聯繫人列表等。這些網站一般使用用戶名和密碼來確認用戶的身份。好比新浪微博的開放平臺就是Service Provider。博客

  2.User(用戶):微博

    存放在服務提供方的受保護的資源的全部者。用戶持有能夠登陸服務提供者網站的用戶名和密碼。用戶不但願把本身的資源公開,可是用戶卻須要將這些資源共享給其餘網站或應用程序(如用戶但願使用第三方開發的新浪微博客戶端來訪問本身的資源,但又不但願第三方應用知道本身的用戶名和密碼)。登錄

  3.客戶端(Client):

    要訪問服務提供方資源的第三方應用,能夠是web應用程序、桌面應用程序或者是手機應用程序。客戶端須要獲得受權以後才能訪問相應的資源。

  Oauth的認證和受權過程:

  1.用戶使用第三方的客戶端(如訪問第三方的網站,或使用第三方的應用),想對存放在服務提供者的某些資源進行操做。

  2.第三方網站或應用向服務提供方請求一個臨時令牌(Request Token)。

  3.服務提供方驗證第三方的身份後,授予其一個臨時令牌。

  4.第三方得到臨時令牌後,將用戶引導至服務提供方的受權頁面請求用戶受權。在這個過程當中將臨時令牌和客戶端的回調鏈接發送給服務提供者。

  5.用戶在服務提供者的受權頁面上輸入本身的用戶名和密碼,而後受權該客戶端訪問相應的資源。

  6.受權成功後,服務提供方引導用戶返回第三方網站的的網頁。

  7.客戶端根據臨時令牌從服務提供方那裏獲取訪問令牌(Access Token)。

  8.服務提供方根據臨時令牌和用戶的受權狀況授予客戶端訪問令牌。

  9.客戶端使用獲取的訪問令牌訪問存放在服務提供方上的相應的資源。

舉個例子來講:有時候訪問某個網站不用註冊就能夠經過新浪微博帳號,QQ帳號登錄,這裏就是利用的Oauth認證,如點擊QQ帳號登錄,會跳轉到QQ開發平臺的受權登錄界面,輸入qq號和密碼後就能夠用QQ號直接登錄第三方的網站了,根據用戶的受權狀況,第三方網站會訪問到用戶相應的資源。

相關文章
相關標籤/搜索