OpenID 是一种为多个站点指定一个标识的方法,因此您不需要一次又一次地注册。

OAuth 是一种允许一个应用程序访问一个帐户的方法,而无需向该应用程序提供帐户登录信息。你可以把它们结合起来使用。

更多信息: OAuth-OpenID: 如果你认为它们是同一件事,那么你就找错了对象

如果你在一个网站上有一个帐户(有一些私人资源) ,你可以用用户名/密码对登录。 如果一个应用程序想要使用 得到一些私人资源,并且如果您不想给他们您的用户名/密码,那么使用 OAuth

但是如果你想用 独一无二的账户登录多个网站,使用 OpenID

(有些网站使用 OAuth 比如 OpenID,如果你的 OpenID 帐户中有一些私人信息,OpenID 也可以像 OAuth 一样使用)

OpenID 是纯粹的 * ,用于具有单一凭据集的多站点身份验证。

OAuth 用于让应用程序安全地相互访问: 数据共享。可以把它看作是两件事情之间的信任纽带,例如允许你的 flickr 账户在你的 Facebook 墙上发布东西,或者把你的 flickr 照片挂到第三方打印网站上。

OAuth 不仅仅是站点到站点。你可以在桌面应用程序中链接没有真正概念的“身份”到一个身份驱动的网站,如 Facebook 或 Twitter (例如,Twitter 客户端可以张贴到你的饲料,而不必存储你的登录细节)。

虽然存在相似之处,但 OAuth 实际上完全是关于服务到服务的链接。

OpenID = 使用来自 OpenID 提供者(Google)的登录凭据登录到另一个应用程序(Stack Overflow)

OAuth = 允许应用程序(TwitPic)代表您访问您使用的应用程序(Twitter)的信息。

它们可以互相结合使用。

OpenID 是对许多只有一个用户名的站点进行身份验证。
OAuth 是关于授权的-站点 A 有权调用站点 B 的 api。

这里有另一篇很好的文章/类比来解释这些差异: http://www.dotnetopenauth.net/about/about-oauth/