为什么2-legged OAuth2已经很好了,还需要3-legged OAuth2?

30

2-legged OAuth2用于基于浏览器的应用程序,其中不需要隐藏任何客户端凭据。3-legged OAuth2由“Web Server Apps”使用,其中服务器之间有第三个调用。 所有内容都在这里很好地描述了

问题是:既然2-legged看起来已经可以了,为什么还要费心去用3-legged?

这对提供者和客户端都需要更多的工作。为什么没有一个大公司采取行动并删除3-legged呢?


http://hueniverse.com/2012/07/on-leaving-oauth/ - PeeHaa
2
更新链接... http://aaronparecki.com/articles/2012/07/29/1/oauth2-simplified - Adrian
很棒的链接@Adrian,谢谢。 - Sebas
2个回答

86

"三脚架"不意味着某种特定类型的应用程序,如“基于浏览器的”应用程序。 "三脚架"表示应用程序代表用户直接行事。在三脚架方案中,有:

  1. 应用程序(使用方),
  2. 用户(资源所有者)和
  3. API (服务提供者)。

而在双脚架方案中,没有用户的概念。通常这与应用程序对应用程序的解决方案有关。在这种情况下,应用程序(消费者)代表自己行事。因此,在双脚架OAuth中,有:

  1. 一个应用程序(消费者),
  2. 一个API(服务提供者)

区别仅在于2脚架方法中无需进行用户授权步骤。


2
是的,你说得对。我误解了“2-leg”和“3-leg”的实际含义。我会设置一个新问题。既然你看到了我的错误,我会把这个答案标记为正确的。 - Aron Woost
1
请注意:https://dev59.com/fGYr5IYBdhLWcg3wytLe - Aron Woost
That's why I love SO ! - Faizan

2

存在2-legged场景。例如,请查看有关Google应用程序域委派管理的文档。当然,它们只能在受信任的环境中由帐户的超级所有者使用-在我上面提到的示例中:Google应用程序域管理员是他所管理的域中所有用户帐户的超级所有者。

3-legged必须在开放的Web环境中使用。您确实需要获得资源所有者的批准,以授予第三方应用程序访问其数据的权限。


1
是的,我搞混了。 - Aron Woost
请参考此链接:https://dev59.com/fGYr5IYBdhLWcg3wytLe - Aron Woost

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