oauth - OpenID、OpenSSO 和 OAuth

标签 oauth openid security opensso

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

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

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

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

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

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

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

    最佳答案

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

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

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

    关于oauth - OpenID、OpenSSO 和 OAuth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11404492/

    相关文章:

    asp.net - oAuth ASP.NET 成员(member)提供商

    http - 如果我只使用 OpenID,我应该为 401 上的 WWW-Authenticate header 传递什么?

    Azure Active Directory Graph API - 登录用户的访问 token

    django - Google 如何生成其 OpenID claimed_id token ?

    security - 为什么盐会造成字典攻击 'impossible' ?

    oauth - 使用 POSTMAN 时 Box.api oauth2 访问 token 请求错误 "Invalid grant_type parameter or parameter missing"

    oauth - Google 帐户链接操作 - 根据我们的帐户链接政策,Google 帐户不能用作身份验证端点 URL

    java - 用于 OAuth 身份验证的 Facebook 代码参数

    security - Symfony2 通过 IP 保护不工作

    c - 防止 Ubuntu 12 中缓冲区溢出演示中的段错误