openId,OpenId Connect和OAuth2有什么不同?

时间:2015-07-22 19:17:37

标签: single-sign-on openid

我正在研究我们现在用于SSO的标准协议。似乎他们都可以单点登录。它们之间的主要区别是什么?

1 个答案:

答案 0 :(得分:0)

从安全堆栈溢出找到答案。  Difference Between OAUTH, OpenID and OPENID Connect in very simple term

OpenID是用于身份验证的协议,而OAuth用于授权。身份验证是为了确保与您交谈的人确实是他声称的人。授权是关于决定允许那个人做什么。

在OpenID中,委派身份验证:服务器A想要验证用户U,但是U的凭据(例如,U的名称和密码)被发送到A信任的另一个服务器B(至少,信任用于验证用户)。事实上,服务器B确保U确实是U,然后告诉A:“好吧,那是真正的U”。

在OAuth中,委托授权:实体A从实体B获得A可以向服务器S显示授予访问权限的“访问权限”;因此,B可以向A提供临时的,特定的访问密钥,而不会给它们太多的功率。您可以将OAuth服务器想象成一家大酒店的主要服务器;他给员工钥匙打开他们应该进入房间的门,但每个钥匙都是有限的(它不能进入​​所有房间);此外,钥匙在几个小时后自毁。

在某种程度上,授权可以被滥用到一些伪认证中,基于如果实体A通过OAuth从B获得访问密钥,并将其显示给服务器S,则服务器S可以推断B之前认证了A授予访问密钥。所以有些人使用OAuth,他们应该使用OpenID。这种模式可能有启发性,也可能没有启发性;但我认为这种伪认证比任何事情都更令人困惑。 OpenID Connect就是这样做的:它将OAuth滥用到身份验证协议中。在酒店类比:如果我遇到一个声称的员工而且那个人告诉我他有一把钥匙打开我的房间,那么我认为这是一个真正的员工,因为关键主人不会给他一把钥匙如果他没有,我会打开我的房间。

相关问题