OAuth - 资源所有者究竟是什么?什么时候不是最终用户?

sma*_*man 31 oauth oauth-provider oauth-2.0

术语"资源所有者"是在所定义的OAuth V2.0规范,作为"能够准予访问受保护资源的实体.当资源所有者是人,它被称为最终用户".

我的问题是,什么时候资源所有者不是最终用户?我希望通过可能是真实用例的例子来解释.例如,如果受保护资源是Facebook用户的照片,资源所有者 Facebook或上传照片的Facebook用户是?此外,如果资源所有者(也是一个人)甚至不是正在实施OAuth的应用程序的用户,为什么还要将其视为最终用户?而且,如果Facebook用户是资源所有者,那么Facebook在此交易中扮演什么角色?

Era*_*mer 26

资源所有者可以是一台机器,而不仅仅是人.在许多情况下,整个OAuth流程中都没有人参与,特别是在企业设置中.至少,当我在RFC 5849(以及后来的OAuth 2.0)中引入该术语时,这就是我的意思.

  • 感谢您抽出宝贵时间来解决这个问题.我是否理解,资源所有者,您的意思是(a)一个人,或(b)服务器,而不是可以通过授权授权响应授权请求?自最初构想以来,这个含义是否已经扩展,或者您是否会认为本讨论中的示例被过度分析? (2认同)

Pau*_*ier 10

考虑资源所有者是公司的情况,可能是具有启用/禁用资源访问权限的策略的公司.

考虑一个艺术的例子; 假设你想用一件艺术品让你的住所看起来更好; 您可以去几个地方(例如,Costco),您可以选择一件艺术品,在您选择的介质上打印出您选择的尺寸,然后送到您的家中.

这就是事情; Costco不是该艺术品许可权的所有者; 这不属于他们的业务领域.他们卖东西,他们不收集艺术品.他们所做的是与内容所有者(艺术许可的所有者)协商,以获得在印刷品中使用该艺术品的权利,然后他们创建并交付给您.您向Costco支付艺术品费用; 然后,Costco向您的许可人支付部分付款,以获得使用该艺术品的权利.

在您已与资源所有者建立关系的情况下,这也适用; 例如,假设您已经谈判并购买了某些音乐的权利.你不是音乐的拥有者,因为你没有权利转售音乐; 但你确实有权收听它(这是标准的DRM情况).现在让我们说你想通过网站播放音乐; 你可以向网站请求该音乐; 网站可以与您的身份联系内容所有者(许可人,实际上,但实际上是相同的); 然后,内容所有者可以根据您的条款决定是否授予您网站对内容的访问权限.

希望清除一些东西.


小智 6

考虑一下你有一个Facebook应用程序.

现在,您希望获得有关所有用户活动的统计信息(换句话说,"见解").
在这种情况下,资源("App Insights")由您的应用拥有,而不是每个用户.
因此,您的应用会获得客户端访问令牌(称为2脚OAuth)并访问其洞察.

Facebook还提供"页面洞察"作为页面粉丝活动的资源.在这种情况下,资源由页面拥有,而不是由页面的粉丝拥有,因此您的应用程序将获取页面的访问令牌.

但是我能理解你的困惑.

以前Facebook允许使用页面所有者的访问令牌页面访问令牌访问页面洞察.(这意味着Facebook将其作为页面和页面所有者的资源处理;现在只允许页面的访问令牌)

最后,在所有情况下,Facebook充当"授权服务器""资源服务器".它对用户进行身份验证,并获得客户对其资源的访问权限.(授权服务器).它也提供资源.(资源服务器)