OAuth和OpenID的區別

OAuth關注的是authorization;而OpenID側重的是authentication。從表面上看,這兩個英文單詞很容易混淆,但實際上,它們的含義有本質的區別:ide

  • authorization: n. 受權,承認;批准,委任
  • authentication: n. 證實;鑑定;證明

OAuth關注的是受權,即:「用戶能作什麼」;而OpenID關注的是證實,即:「用戶是誰」。下面就分別來講二者的功能。網站

OpenIDurl

  1. 用戶但願訪問其在example.com的帳戶
  2. example.com (在OpenID的黑話裏面被稱爲「Relying Party」) 提示用戶輸入他/她/它的OpenID
  3. 用戶給出了他的OpenID,好比說」http://user.myopenid.com」
  4. example.com 跳轉到了用戶的OpenID提供商「mypopenid.com」
  5. 用戶在」myopenid.com」(OpenID provider)提示的界面上輸入用戶名密碼登陸
  6. 「myopenid.com」 (OpenID provider) 問用戶是否要登陸到example.com
  7. 用戶贊成後,」myopenid.com」 (OpenID provider) 跳轉回example.com
  8. example.com 容許用戶訪問其賬號

OAuth插件

  1. 用戶在使用example.com時但願從mycontacts.com導入他的聯繫人
  2. example.com (在OAuth的黑話裏面叫「Consumer」)把用戶送往mycontacts.com (黑話是「Service Provider」)
  3. 用戶在mycontacts.com 登陸(可能也可能不用了他的OpenID)
  4. mycontacts.com問用戶是否是但願受權example.com訪問他在mycontact.com的聯繫人
  5. 用戶肯定
  6. mycontacts.com 把用戶送回example.com
  7. example.com 從mycontacts.com拿到聯繫人
  8. example.com 告訴用戶導入成功

OpenID是用來驗證的,就是說能夠用一個url來惟一代表身份(不用挨個記每一個網站的用戶密碼)。OAuth是用來受權的(俺能夠受權一個網站訪問俺在另一個網站的數據,而俺不用把俺的密碼給第一個網站。blog

不少人如今錯誤的把OAuth當作OpenID使用。可是其實也不會照成什麼影響。如水煮魚開發的WordPress插件:開發

WordPress的評論只要求身份認證便可,無需權限認證。it

相關文章
相關標籤/搜索