2010-07-30 41 views

回答

103

如果你有一個網站的帳戶(有一些私人的資源),你可以使用用戶名/密碼情侶登錄。 如果應用程序想獲得一些私人資源,如果你不想給他們你的用戶名/密碼,使用的OAuth

但是,如果要使用唯一帳戶登錄多個網站,請使用OpenID

(有些網站使用OAuth喜歡的OpenID,和OpenID可以像OAuth的使用,如果你在你的OpenID帳戶有一些私人的東西)

+7

只包含所有獲得的信息。希望這個[OpenID&OAuth](http://techastute.blogspot.com/2012/05/openid-authentication-oauth.html)很有用。 – raksja 2012-05-21 20:20:31

239

OpenID是指定多個站點一個身份,所以你不必一遍一遍註冊的方式。

OAuth是允許一個賬戶一個應用程序訪問,而給人一種方式說,申請帳戶的登錄信息。你可以結合使用它們。

更多信息:OAuth-OpenID: You’re Barking Up the Wrong Tree if you Think They’re the Same Thing

+26

我喜歡這個響應超過一個標記爲答案。其他人? – the0ther 2010-11-30 02:47:52

+0

由於票數差異,馬克獲得了一個不錯的徽章。這是肯定的。 :) – 2011-05-15 07:44:59

+0

@Mark:現在是。我提高了接受的一個(也是你的)。現在應該是一個徽章。 – 2011-05-16 10:41:53

20

OpenID是純粹*爲多站點認證通過一個單一的憑據。

OAuth是你讓應用程序相互訪問安全:數據共享。把它看作是在兩件事情之間建立一種信任關係,例如讓你的flickr帳戶在你的Facebook牆上張貼東西,或者將你的flickr照片掛到第三方印刷網站上。

OAuth不僅僅是站點到站點。您可以在桌面應用程序中鏈接沒有真正的「身份」概念的身份驅動的網站,例如Facebook或Twitter(例如,Twitter客戶端可以發佈到您的Feed,而無需存儲您的登錄信息)。

有相似之處,但OAuth是真正的所有關於服務到服務的鏈接。

77

的OpenID =使用從OpenID提供商(谷歌)的登錄憑據登錄到其他應用程序(堆棧溢出)

的OAuth =允許應用程序(TwitPic)從應用程序以您的名義採取行動,並獲取信息你使用(Twitter)。

它們可以相互結合使用。

+0

不是這樣的情況,堆棧溢出或屬於像serverfault的stackoverflow其他網站使用OAuth新用戶註冊使用谷歌或Facebook和OpenID註冊使用其他域名,如serverfault或askubuntu的其他網站註冊。在OAuth中,我們可以限制哪些信息從認證方(臉書)流向服務提供商(計算器)。在OpenID中,我們只需提供一個證明該人爲合法的證書並允許訪問整個數據庫。由於stackoverflow或askubuntu屬於同一個域,因此它們可以交換具有對用戶數據庫的完全訪問權限的證書。 – 2015-05-05 23:06:52

20

OpenID是關於使用一個用戶名對許多網站進行身份驗證的。
OAuth是關於授權的 - 站點A有權調用站點B的api。

這裏的另一個很好的文章/類推解釋的區別:http://www.dotnetopenauth.net/about/about-oauth/

+2

'網站A有權調用網站B的api.'這清除了我。萬分感謝。 – 2013-08-17 08:37:22

+0

此外,如果我希望用戶訪問我的網站通過登錄Google註冊我的網站,然後存儲他們的電子郵件ID對所有他們的活動由於會計原因散列,我會使用... OpenID,對吧? – 2013-08-17 08:39:02

+0

@ronnieaka OpenID將爲此工作得很好。 – 2013-08-19 22:49:13