在OAuth2中,授权服务器是否将授权代码直接发送给客户端,或通过资源所有者发送给客户端?

时间:2017-04-28 21:18:11

标签: security oauth-2.0

文档中的相关部分:https://tools.ietf.org/html/rfc6749#section-1.3.1

最初它说:

  

授权代码是使用授权服务器获得的   客户端和资源所有者之间的中介。代替   直接从资源所有者,客户端请求授权   将资源所有者定向到授权服务器(通过其   [RFC2616]中定义的用户代理,反过来指示   资源所有者使用授权码返回客户端。

粗体部分让我认为Auth代码被提供给资源所有者,然后资源所有者将其提供给客户端。像这样:

enter image description here

然而,它后来说:

  

授权码提供了一些重要的安全优势,   例如验证客户端的能力,以及   无需将访问令牌直接传输到客户端   将其传递给资源所有者的用户代理并且可能   将其暴露给其他人,包括资源所有者。

这让我觉得auth代码正在直接发送到客户端,而不是通过资源所有者。像这样:

enter image description here

这两个是哪一个?如果它是后者,那么资源所有者得到的响应是什么?

1 个答案:

答案 0 :(得分:1)

我认为您将授权码与访问令牌混淆。 在第一部分中,RFC表示授权代码从授权服务器传递给资源所有者,然后从资源所有者(通过其用户代理)传递到客户端。 它后来说,ACCESS TOKEN(用于获取信息)直接被委托给客户。这是因为首先客户端从资源所有者的用户代理获得授权代码,然后它与授权服务器交换访问令牌。显然,这发生在授权代码授权中。在隐含授权中,它们都是不同的。