OAuth和OpenID的區別

2021-07-03 20:29:36 字數 1316 閱讀 8998

技術

標點符 

4年前 (2011-08-31) 

2315℃

前面兩篇文章(oauth學習筆記和openid學習筆記)都說了可以用來認證身份,但是他們之間到底有哪些不同,哪些情況應該用oauth,哪些情況應該用openid呢?下面就一起來看下他們之間的區別。

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

oauth關注的是授權,即:「使用者能做什麼」;而openid關注的是證明,即:「使用者是誰」。下面就分別來說兩者的功能。

openid

使用者希望訪問其在example.com的賬戶

example.com (在openid的黑話裡面被稱為「relying party」) 提示使用者輸入他/她/它的openid

使用者給出了他的openid,比如說」

example.com 跳轉到了使用者的openid提供商「mypopenid.com」

使用者在」myopenid.com」(openid provider)提示的介面上輸入使用者名稱密碼登入

「myopenid.com」 (openid provider) 問使用者是否要登入到example.com

使用者同意後,」myopenid.com」 (openid provider) 跳轉回example.com

example.com 允許使用者訪問其帳號

oauth

使用者在使用example.com時希望從mycontacts.com匯入他的聯絡人

example.com (在oauth的黑話裡面叫「consumer」)把使用者送往mycontacts.com (黑話是「service provider」)

使用者在mycontacts.com 登入(可能也可能不用了他的openid)

mycontacts.com問使用者是不是希望授權example.com訪問他在mycontact.com的聯絡人

使用者確定

mycontacts.com 把使用者送回example.com

example.com 從mycontacts.com拿到聯絡人

example.com 告訴使用者匯入成功

openid是用來驗證的,就是說可以用乙個url來唯一表明身份(不用挨個記每個**的使用者密碼)。oauth是用來授權的(俺可以授權乙個**訪問俺在另外乙個**的資料,而俺不用把俺的密碼給第乙個**。

很多人現在錯誤的把oauth當做openid使用。但是其實也不會照成什麼影響。如水煮魚開發的wordpress外掛程式:

OAuth和OpenID的區別

出處 前面兩篇文章 oauth學習筆記和openid學習筆記 都說了可以用來認證身份,但是他們之間到底有哪些不同,哪些情況應該用oauth,哪些情況應該用openid呢?下面就一起來看下他們之間的區別。簡短的說,oauth關注的是authorization 而openid側重的是authentica...

OAuth2 0和SSO授權的區別

一 oauth2.0授權協議 圖示 流程 1 獲取未授權的request token。url request token url。response oauth token oauth secret 2 獲取使用者授權的request token。url user authorizition url。...

Oauth2 0與Oauth1 0的區別

oauth1.0與oauth2.0的區別 雲計算的熱火,引出了大量的開放平台,各種第三方應用建立在開放平台之上,對於安全性的要求,於是出現了oauth協議,2007年發布了oauth1.0協議,同時又開始了oauth2.0的討論,2.0的草案與2011年發布。新的2.0與1.0不相容。下面說一說2....