4

我对 OpenID 的理解是,它提供了一种方法让一个站点包含您所有的身份和外围信息,但让其他符合 OpenID(和用户信任)的站点重新使用该信息来识别和验证用户。从本质上讲,它最大限度地减少了用户在互联网上拥有的登录凭据(用户名和密码)的数量。

我对 OpenSSO 的理解是,它允许您登录到一个站点并自动登录到第一个站点信任的所有其他站点。从本质上讲,它最大限度地减少了用户必须登录这些不同站点的次数。

我对 OAuth 的理解是,它允许用户授予 3rd 方站点对其位于某个特定站点的信息的某些访问权限。本质上,就像 OpenSSO 一样,它最大限度地减少了用户必须登录这些不同站点的次数。与 OpenSSO 的不同之处在于,OpenSSO 一次将用户登录到所有参与站点(打开了完全权限),而 OAuth 授予对这些参与站点的更细粒度的访问权限。

所以,首先,如果我说的有什么不正确的地方,请先纠正我!

假设我或多或少是正确的,那么我对以下项目有以下问题/需要澄清:

  • 我什么时候会选择 OpenSSO 而不是 OAuth - 就在我想限制其他参与站点在用户登录其中一个站点时的访问权限时?
  • 我将不得不考虑并集成到我的应用程序中的每种技术的不同安全风险 - 或者它们本身是否被认为是安全的(基本上我可以放心,如果我的应用程序使用它们,我的应用程序不会开放任何新的攻击)?

由于这些技术密切相关,我很难在这里看到整个“森林穿过树木” - 在此先感谢!

4

2 回答 2

2

不是真正正确的比较。OpenID 和 OAuth 是协议,OpenSSO(现在的 OpenAM)是这些协议和其他协议(SAML、OAuth 等)的实现

一般来说,OpenID 和 OAuth 的协议是相似的,尽管它们起源于不同的用例。如今,对于联合(身份验证)和授权案例,围绕 OAuth 2.0 有很多融合。称为OpenID Connect的下一代 OpenID建立在 OAuth 2.0 之上,其前身已经在 Google、Facebook、Twitter 等平台上部署......

至于安全性,总是存在一些风险,尤其是实施错误。选择一个好的实现并阅读规范,以便您了解风险和对策。

于 2012-07-10T19:45:56.143 回答
0

OpenSSO 是让您登录到一个站点并登录到多个站点。

OAuth 允许一个站点从第二个站点提取您的数据(提取您的推文或 Facebook 状态),而第一个站点不必知道如何登录到第二个站点。

于 2012-07-10T03:25:08.433 回答