OAuth-什么是资源所有者?它何时不是最终用户?

OAuth-什么是资源所有者?它何时不是最终用户?,oauth,oauth-2.0,oauth-provider,Oauth,Oauth 2.0,Oauth Provider,术语“资源所有者”在中定义为“能够授予对受保护资源的访问权限的实体。当资源所有者是个人时,称为最终用户。” 我的问题是,资源所有者何时不是最终用户?我希望通过可能是真实用例的示例进行解释。例如,如果受保护的资源是Facebook用户的照片,那么资源所有者是Facebook还是上传照片的Facebook用户?另外,如果资源所有者(也是一个人)甚至不是实现OAuth的应用程序的用户,那么为什么该资源所有者(也是一个人)会被视为最终用户?而且,如果Facebook用户是资源所有者,那么Facebook

术语“资源所有者”在中定义为“能够授予对受保护资源的访问权限的实体。当资源所有者是个人时,称为最终用户。”


我的问题是,资源所有者何时不是最终用户?我希望通过可能是真实用例的示例进行解释。例如,如果受保护的资源是Facebook用户的照片,那么资源所有者是Facebook还是上传照片的Facebook用户?另外,如果资源所有者(也是一个人)甚至不是实现OAuth的应用程序的用户,那么为什么该资源所有者(也是一个人)会被视为最终用户?而且,如果Facebook用户是资源所有者,那么Facebook在这个交换中扮演什么角色呢?

我的公司与屏幕共享视频会议提供商合作。我们的用户可以使用他们的解决方案作为我们产品的一部分。我们和第三方工具之间的通信是通过使用两条腿的OAuth调用API进行的

我们不是一个人,更好的措辞可能是一个外部系统,但我们绝对是一个资源所有者——因为我们为我们使用的资源付费,我们是授权API调用的实体


此外,在您提到的Facebook示例中。资源所有者是上传照片的人。此人也是最终用户。第三方应用程序发出API调用的“谁受益”应用程序。

假设您有一个Facebook应用程序

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

Facebook还提供“页面见解”
,作为页面粉丝活动的资源。在这种情况下,资源属于页面而不是页面的粉丝,因此您的应用程序将获得页面的访问令牌

但是我能理解你的困惑。

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

最后,在所有情况下,Facebook都扮演着“授权服务器”和“资源服务器”的角色。它对用户进行身份验证,并获得客户端对其资源访问的批准。(授权服务器)。它也提供资源。(资源服务器)

来自规范:

资源所有者-能够授予对受保护资源的访问权限的实体。当资源所有者是个人时,它被称为最终用户

从这个定义中,我了解到许多实体可能能够授予对受保护资源的访问权

正如您所注意到的,人类的例子很容易找到——当您请求访问我的受保护照片时,只有一个实体能够授予访问权限。那个实体就是我。我必须采取一些行动来满足你的要求。根据应用程序的不同,这可能包括单击按钮、发送短信、讲话、鼓掌等等。捕获和处理我的操作的机制与此定义无关


继续这个例子,假设另一个实体可以授予访问我的受保护照片的权限。想象一下,您是照片托管服务值得信赖的业务合作伙伴。或者您是照片托管公司的另一个团队,您的服务器在同一个数据中心内运行。在这种情况下,可能需要自动授予您对受保护照片的权限。如果资源服务器决定自动授予您访问权限(因为您是谁),这将代表第二个实体。在这里,这个非人类实体已经决定(以其智慧)应该自动接受您的访问请求。

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

以艺术为例;比如说,你想用一件艺术品让你的住所看起来更好;有几个地方你可以去(例如好市多),在那里你可以选择一件艺术品,以你选择的大小印刷在你选择的媒体上,然后送到你家

事情是这样的;好市多不是该艺术品许可权的所有者;那超出了他们的业务范围。他们卖东西,不收藏艺术品。他们所做的是与内容所有者(艺术许可证的所有者)协商在印刷品中使用该艺术的权利,然后他们创建并交付给您。你支付好市多的艺术品;好市多随后向许可方支付部分费用,以获得您对艺术品的使用权

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


希望这能解决一些问题。

资源所有者可以是一台机器,而不仅仅是人。在许多情况下,整个OAuth流程中没有人参与,特别是在企业设置中。至少,当我