Oauth 2.0 在Oauth2中,资源所有者拥有的资源在哪里?

Oauth 2.0 在Oauth2中,资源所有者拥有的资源在哪里?,oauth-2.0,openid-connect,azure-ad-b2c,Oauth 2.0,Openid Connect,Azure Ad B2c,我一直在努力了解 假设我使用我的Facebook帐户通过OAuth2登录到一个网站(比如堆栈溢出)。我知道我是“资源所有者”,但在这种情况下我拥有哪些资源 我在Facebook上的东西还是我在堆栈中的东西溢出 从这个角度看,资源似乎在Facebook上,但从对我问题的回答来看,资源似乎在堆栈溢出中 资源是否与作用域相同 [更新] 看着 我知道了 OpenIDConnect 1.0是OAuth2.0之上的一个简单标识层 协议它使客户端能够验证最终用户的身份 基于授权服务器执行的身份验证,如 以及获

我一直在努力了解

假设我使用我的Facebook帐户通过OAuth2登录到一个网站(比如堆栈溢出)。我知道我是“资源所有者”,但在这种情况下我拥有哪些资源

我在Facebook上的东西还是我在堆栈中的东西溢出

从这个角度看,资源似乎在Facebook上,但从对我问题的回答来看,资源似乎在堆栈溢出中

资源是否与作用域相同

[更新]

看着

我知道了

OpenIDConnect 1.0是OAuth2.0之上的一个简单标识层 协议它使客户端能够验证最终用户的身份 基于授权服务器执行的身份验证,如 以及获取有关最终用户的基本配置文件信息 可互操作和类似REST的方式

OpenID连接协议抽象地遵循以下步骤

  • RP(客户端)向OpenID提供程序(OP)发送请求
  • OP验证最终用户并获得授权
  • OP使用ID令牌和访问令牌进行响应
  • RP可以向UserInfo端点发送带有访问令牌的请求
  • UserInfo端点返回有关最终用户的声明
  • 假设我使用我的Facebook帐户登录到一个网站(比如Stack) 溢出)通过OAuth2。我知道我是“资源所有者”,但是 在此场景中,我拥有哪些资源

    首先,像SO这样的一些网站实际上在使用带有授权/身份验证的,而不仅仅是OAuth2.0。(因为OAuth2.0的特性有一些限制,尤其是身份验证。)

    在这种情况下,网站(SO)绝对是资源。但是,类似stack overflow的网站使用基于Oauth 2.0的OpenID Connect进行身份验证/授权。而且它面向所有客户(2C,而不是2B)。在这种情况下,Facebook帐户在SO中作为一个社交帐户。这需要配置两个身份提供程序

    在OAuth中,广泛地说,在您注册SO之后,您可以访问SO,您是SO的所有者。但严格来说,我们只是一个普通的用户,所以,不是这个网站的真正所有者。这取决于此应用程序/网站的后端逻辑在OpenID Connect中,您是最终用户。

    资源所有者只是OAuth2.0中的一个定义,我们可以通过实际场景来理解它。它只是指可以访问资源的用户

    我在Facebook上的东西还是我在堆栈中的东西溢出

    我认为我的东西是指用户配置文件。它应该在堆栈溢出中。正如我上面提到的,Facebook帐户只是一个社交帐户提供商。您可以使用社交帐户登录SO,但SO也应该为您创建用户配置文件并将其保存到数据库中

    对于这个场景,应该是关于OpenID连接的。我想你应该参考本协议

    另外,像您问题中的场景应该是B2C web app/api。是可以实现此场景并帮助您理解OpenID连接协议的功能

    希望这有帮助


    更新:


    通常,OP是用户配置文件的来源。但是,RP还需要获取用户配置文件,并在自己的数据库中创建一些用户配置文件。当然,正如Chris所说,Facebook帐户是最终用户和资源所有者

    在上述场景中,您作为资源所有者,通过堆栈溢出作为客户端应用程序授权访问您的Facebook帐户作为所拥有的资源


    应用程序对您的Facebook帐户的访问权限仅限于授权访问的范围。

    我更清楚地了解了我的痛苦阅读,感谢链接,但目前我认为我同意Chris的观点,即资源必须在Facebook中。是的,原始用户信息在Facebook中,因为Facebook是OP,RP stackoverflow需要得到Facebook的授权,才能首先获得用户配置文件并将其保存到自己的数据库中。实际上,用户配置文件也可能位于两个位置。抱歉我的误解,我将更新我的答案:-)就像在从Olaf购买甜甜圈的例子中,资源是钱而不是甜甜圈?汽车是资源