我对 OpenID 的理解是,它提供了一种方法让一个站点包含您所有的身份和外围信息,但让其他符合 OpenID(和用户信任)的站点重新使用该信息来识别和验证用户。从本质上讲,它最大限度地减少了用户在互联网上拥有的登录凭据(用户名和密码)的数量。
我对 OpenSSO 的理解是,它允许您登录到一个站点并自动登录到第一个站点信任的所有其他站点。从本质上讲,它最大限度地减少了用户必须登录这些不同站点的次数。
我对 OAuth 的理解是,它允许用户授予 3rd 方站点对其位于某个特定站点的信息的某些访问权限。本质上,与 OpenSSO 一样,它最大限度地减少了用户必须登录这些不同站点的次数。与 OpenSSO 的不同之处在于,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/