2013-07-16 97 views
17

我一直在尋找互聯網有關的一些信息,並結束了對RFC的要OAuth 1.0協議http://tools.ietf.org/html/rfc5849我是否正確地認爲OAuth 1.0已被棄用,以支持OAuth 2.0?

你可以閱讀「通過已過時:6749」在它的頂部,如果你遵循那個鏈接,你最終在的OAuth 2.0授權框架 RFC。

基於此,我可以安全地推斷出OAuth 1.0已被棄用,以支持OAuth 2.0嗎?

謝謝。

+0

1.0是出於安全考慮絕對不贊成使用,1.0A仍是可用的,事實上,在使用(例如高音揚聲器採用1.0A:https://dev.twitter.com/docs/auth/oauth)恕我直言,你不應該對於這樣一個問題,你不應該給500 :-) –

+2

@Simon「你不應該給500這樣的問題」 - 我完全同意。 – dan

+0

@dan那你爲什麼呢,丹?我只是好奇。我想這個anfab人很幸運XD –

回答

22

是和

IETF已出版的OAuth 2 obsoleting的OAuth 1.x的新版本,並強烈建議新的驗證提供商切換到OAuth2。

對OAuth 1.0a進行了修訂,修復了1.0中發現的許多安全漏洞,並被廣泛認爲是最安全的OAuth版本。

OAuth2是一個全新的協議,不會向後兼容OAuth 1.x.在此thread中列出了有關OAuth 1的主要差異。

然而,並不是每個人都對新標準感到滿意。 OAuth規範的主要作者和編輯Eran Hammer-Lahav從blog post的理由辭去了委員會的理由。

霍馬科夫,誰起來與他的利用Github,has not so nice things to say about OAuth 2成名。

所以是的,OAuth 2已經正式取代了OAuth 1.x,但是網絡上是否應該使用OAuth2還是堅持使用OAuth 1.0a存在衝突。

+1

作爲一個有意思的是,你可以閱讀反駁葉蘭的博客文章,在這裏:http://blogs.mnt.se/the-bitter-taste-of-good-intentions/ –

+0

讀了一些反駁,但從來沒有來通過這個鏈接,非常感謝。對於我選擇Oauth2而不是其他版本的價值。 – anfab

+0

@anfab閱讀提供的鏈接,選擇2.0似乎是一個奇怪的選擇。是否因爲在此期間,參考實現已經出現? –

5

是)

最公司使用2.0 - 比如google

重要提示:OAuth 1.0已經正式棄用4月20日,2012年 將繼續按照工作我們的棄用政策,但我們鼓勵您儘快遷移到OAuth 2.0。

但也有一些使用1.0或1.0a的,你可以看到在OAuth的服務供應商的章列表wiki: OAuth

還有一個官方信息1.0已被棄用RFC 6749: The OAuth 2.0 Authorization Framework

..本規範取代並廢除了RFC 5849中描述的OAuth 1.0 協議。

和RFC 5849是The OAuth 1.0 Protocol

+0

是不是我在我的問題官方信息鏈接? – dan

+0

@dan - 在您的鏈接中* OAuth 1.0協議*我還沒有找到1.0版已棄用的信息 – MikroDel

+0

在最上面它說「已廢棄:6749」 - 不是嗎? – dan

1

我真的不認爲你可以說OAuth 1.0已被棄用,以支持OAuth 2.0。如果符合您的要求,您仍然可以使用1.0。

2.0對於大型規模來說比較好,比如Twitter做了棄用並將它的API從1改爲1.1,以便使用新的OAuth,但這與Twitter有關。 在另一種情況下可能是1.0。仍然工作完美,所以不需要升級。

OAuth 2.0。必須更多地使用公共加密,公鑰。而不是私人的,而不是好消息,因爲這種方法現在已知多年。 所以,對於好壞,仍然存在不同的觀點。

這裏Oauth2.0 and the road to hell,這裏OAuth 2.0'bad'我想你可以找到更多有趣和詳細的信息,你想要什麼。

4

直接回答你的問題是是的。從OAuth 2.0 spec

本規範旨在說明新實現支持本文檔中指定的OAuth 2.0,並且OAuth 1.0僅用於支持現有的部署。

儘管我更喜歡OAuth 2.0,並且已經實現了2.0授權服務器並對規範做出了貢獻,但我不能說其中一個比另一個更好。我相信2.0更容易處理。

作爲一個有用的協議,OAuth 1.0並沒有過時或不相關。從版本1.0a(RFC 5849是1.0a)開始,我知道沒有任何漏洞使得它比2.0更安全,事實上,默認情況下它更安全。 1.0能夠處理大多數用例。

OAuth 2.0與OAuth 1.0不兼容;這是一個全新的協議。推動2.0開發的設計決策並非植根於1.0,本身的缺陷,而是2.0是出於使OAuth更易於實現的願望,以及對於難於1.0的用例更優雅(例如作爲原生應用程序)。

一些差異可能是值得注意的:

  • 2.0依賴於由TLS加密連接提供的安全性。 1.0不需要TLS,因此協議更加複雜,因爲它必須包含自己的防禦中間人攻擊。例如,1.0依賴於signed requests來訪問受保護的資源,而2.0提供的訪問令牌類型更爲簡單。

  • 2.0將OAuth服務器分成兩個conceptual roles:(1)授權服務器和(2)資源服務器。這種關注的分離自然與企業的授權問題分散在許多負責不同類型資源的服務器之間。

  • 2.0區分confidential and public clients。公共客戶端是那些在用戶設備上運行的客戶端,因此他們無法可靠地保留祕密(硬編碼,嵌入憑證)。區分機密和公共客戶可以更輕鬆地做出適合客戶應用程序開發人員需求的安全實施決策。

  • 2.0引入了多個authorization grant types。每種授權類型都有其自己的協議流程,並且這些協議流程會生成OAuth 2。0適用於多種用例和客戶端類型。

  • 2.0使了很大的努力,以可擴展的。 Section 8 of the spec爲定義新的訪問令牌類型,授權類型和協議參數提供了條款。例如,除了持有人令牌之外,工作正在進入MAC tokensJWT bearer tokens

這是主觀的,但可以說,OAuth 2.0用戶嘗試要靈活許多使用情況,在有需要的OAuth 1.0開發人員將他們的用例放入一個更嚴格的框架。