開放授權(OAuth)是一個開放標準,允許用戶讓第三方應用訪問該用戶在某一網站上存儲的私密的資源(如照片,影片,聯繫人列表),而無需將用戶名和密碼提供給第三方應用。

Thumb
OAuth的標誌

OAuth允許用戶提供一個令牌,而不是用戶名和密碼來訪問他們存放在特定服務提供者的數據。每一個令牌授權一個特定的網站(例如,影片編輯網站)在特定的時段(例如,接下來的2小時內)內訪問特定的資源(例如僅僅是某一相冊中的影片)。這樣,OAuth讓用戶可以授權第三方網站訪問他們存儲在另外服務提供者的某些特定信息,而非所有內容。

OAuth是OpenID的一個補充,但是完全不同的服務。

版本與歷史

Thumb
圖解開放授權

歷史

OAuth開始於2006年11月,當時布萊恩·庫克英語Blaine Cook (programmer)正在開發TwitterOpenID實現。與此同時,社交書籤網站Ma.gnolia英語Gnolia需要一個解決方案允許使用OpenID的成員授權Dashboard訪問他們的服務。這樣庫克、克里斯·梅西納英語Chris Messina (open source advocate)和來自Ma.gnolia的拉里·哈爾夫(Larry Halff)與戴維·雷科爾頓英語David Recordon會面討論在Twitter和Ma.gnolia API上使用OpenID進行委託授權。他們討論得出結論,認為沒有完成API訪問委託的開放標準

2007年4月,成立了OAuth討論組,這個由實現者組成的小組撰寫了一個開放協議的提議草案。來自Google德維特·克林頓獲悉OAuth項目後,表示他有興趣支持這個工作。2007年7月,團隊起草了最初的規範。隨後,Eran Hammer-Lahav加入團隊並協調了許多OAuth的稿件,創建了更為正式的規範。2007年10月, OAuth核心1.0最後的草案發布了。

2008年11月,在明尼阿波利斯舉行的互聯網工程任務組第73次會議上,舉行了OAuth的BoF[1]討論將該協議納入IETF做進一步的規範化工作。這個會議參加的人很多,關於正式地授權在IETF設立一個OAuth工作組這一議題得到了廣泛的支持。

2010年4月,OAuth 1.0協議發表為RFC 5849,一個非正式RFC

OAuth 2.0

OAuth 2.0是OAuth協議的下一版本,但不向下兼容OAuth 1.0。OAuth 2.0關注客戶端開發者的簡易性,同時為Web應用、桌面應用、手機和智能設備提供專門的認證流程。

Facebook的新的Graph API只支持OAuth 2.0[2],Google在2011年3月也宣布Google API對OAuth 2.0的支持[3],Windows Live也支持OAuth 2.0[4]

安全

2009年4月23日,OAuth宣告了一個1.0協議的安全漏洞。該漏洞影響了OAuth 1.0核心規範第6節的OAuth的認證流程(也稱作3階段OAuth)。[5]於是,發布了OAuth Core協議1.0a版本來解決這一問題。[6]

2014年5月,新加坡南洋理工大學一位名叫王晶(Wang Jing)的數學系博士生[7],發現了OAuthOpenID開源登錄工具的"隱蔽重定向漏洞"[8]。該漏洞首先由CNET報道[9]騰訊QQ新浪微博、阿里巴巴淘寶、支付寶、搜狐網網易人人網、開心網、亞馬遜、微軟Live、WordPress、eBay、PayPal、臉書谷歌雅虎領英、VK.com、Mail.Ru、Odnoklassniki.ru、GitHub等大量知名網站受影響[10]。黑客可利用該漏洞給釣魚網站「變裝」,用知名大型網站鏈接引誘用戶登錄釣魚網站,一旦用戶訪問釣魚網站並成功登陸授權,黑客即可讀取其在網站上存儲的私密信息[11]。該問題被鳳凰網[12],網易[13],搜狐[14],太平洋電腦網[15],人民網[16],CSDN[17]等大量中文網站報道。其實漏洞不是出現在OAuth這個協議本身,這個協議本身是沒有問題的,之所以存在問題是因為各個廠商沒有嚴格參照官方文檔,只是實現了簡版。問題的原因在於OAuth的提供方提供OAuth授權過程中沒有對回調的URL進行校驗,從而導致可以被賦值為非原定的回調URL,就可以導致跳轉、XSS等問題,甚至在對回調URL進行了校驗的情況可以被繞過[18]。目前大部分被涉及的網站都已經修復該問題。

OAuth與其他標準

Thumb

參見

參考文獻

外部連結

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.