OpenID、OpenSSO和OAuth

4
我对OpenID的理解是,它提供一种方法,使一个网站包含所有您的身份和外围信息,但让其他OpenID兼容(且用户信任的)网站重复使用该信息以识别和认证用户。基本上,它最小化了用户在互联网上拥有的登录凭据(用户名和密码)的数量。
我对OpenSSO的理解是,它允许您登录一个网站并自动登录第一个网站信任的所有其他网站。基本上,它最小化了用户必须登录这些不同网站的次数。
我对OAuth的理解是,它允许用户授予第三方网站对其在一个特定网站上的信息的某些访问权限。基本上,就像OpenSSO一样,它最小化了用户必须登录这些不同网站的次数。与OpenSSO不同的是,OpenSSO会一次性将用户登录到所有参与的网站(并启用完整权限),而OAuth则向这些参与的网站授予更精细的访问权限。
所以,首先,如果我说错了什么,请先纠正我!
假设我说的大体正确,那么我对以下事项有以下问题/需要澄清:
  • 何时选择OpenSSO而不是OAuth-只有当我想限制用户登录其中一个站点时,其他参与站点的访问权限吗?
  • 这些技术是否存在不同的安全风险,我需要考虑并集成到我的应用程序中-还是它们被认为是本身安全的(基本上,如果我的应用程序使用它们,我可以放心,我的应用程序不会面临任何新攻击)?
由于这些技术非常相关,很难看到整个“森林”,在此提前感谢您!
2个回答

2
并不是一个恰当的比较。OpenID和OAuth是协议,OpenSSO(现在更名为OpenAM)是这些协议以及其他协议(例如SAML、OAuth等)的实现。 一般来说,OpenID和OAuth的协议相似,尽管它们最初面向不同的用例。如今,在联合身份验证和授权方面,OAuth 2.0已经得到了广泛应用。下一代OpenID称为OpenID Connect,是基于OAuth 2.0构建的,其前身已经在Google、Facebook、Twitter等平台上得到了推广。 至于安全性,总会存在一些风险,尤其是在实现过程中出现错误时。选择一个好的实现,并阅读相关规范以便了解风险和对策。

0

OpenSSO能够让您登录一个网站,然后自动登录多个网站。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接