0

我的应用程序获取 oauth2.0 令牌来访问受保护的资源,但是如何区分用户,例如是否有 userA 和 userB。UserA可以访问url/accout/info.jso?uid=2获取他的数据,但是我的问题是如果userA获取了token,但是他通过url访问了userB的数据/accout/info.jso?uid=userBId oauth2.0系统如何避免这种问题?

4

1 回答 1

0

在 OAuth 2.0 中,资源所有者和请求访问的客户端是两个不同的实体。在您的问题中,听起来它们是一回事。OAuth 的存在是为了提供对第三方客户端应用程序的有限访问。

但撇开这些不谈……如果您使用的是不记名令牌,它们不会提供任何身份证明。不记名令牌的性质是,任何出示它的人都被授予与令牌相关的访问权限。其他令牌类型,例如 SAML 2.0,携带更多关于客户端身份的语义信息。

在您的情况下,您希望验证 URI 中标识的用户是发送请求的用户。单独的不记名令牌不会这样做。如果使用不记名令牌,您的资源服务器将需要询问授权服务器所提供的令牌是否已颁发给客户端正在请求其数据的用户。授权服务器必须记住它发出的访问令牌以及它向谁发出的访问令牌。它还应该记住它们发出的范围以及它们何时到期,以便资源服务器可以检查令牌是否仍然处于活动状态以及所请求的资源是否在所提供令牌的范围内。

于 2014-01-03T19:16:15.897 回答