14

我正在开发一个基于rfc6749的 oauth2 提供程序,我想知道,为什么访问令牌请求需要 redirect_uri ?/token 端点没有重定向,并且假定状态已经过验证(即针对 CSRF),因此 redirectURI 的副本对我来说没有多大意义。

4

3 回答 3

6

在身份验证代码流中,它用于验证第一个身份验证请求中的 redirect_uri。 https://www.oauth.com/oauth2-servers/redirect-uris/redirect-uri-validation/

授予访问令牌

令牌端点将收到一个请求以交换访问令牌的授权代码。此请求将包含重定向 URL 以及授权代码。作为额外的安全措施,服务器应验证此请求中的重定向 URL 是否与此授权代码的初始授权请求中包含的重定向 URL 完全匹配。如果重定向 URL 不匹配,服务器将拒绝请求并返回错误。

于 2018-03-13T19:30:14.160 回答
1

这里讨论了同样的问题:https ://security.stackexchange.com/questions/44214/what-is-the- purpose-of-oauth-2-0-redirect-uri-checking 。

恕我直言,最好的回应是 vinod one,即。在使用灵活的 redirect_uri(使用通配符)时减少表面攻击

于 2020-04-28T10:43:34.780 回答
-1

在以下情况下需要重定向 URI 1. 服务器使用代码重定向到重定向 URI 的授权代码流,例如对授权请求的示例响应是:

HTTP/1.1 302 Found
Location: https://client.example.com/cb?code=SplxlOBeZQQYbYS6WxSbIA
           &state=xyz

Authz 代码流的错误响应也是如此:

HTTP/1.1 302 Found
Location: https://client.example.com/cb?error=access_denied&state=xyz

在隐式授权的情况下,服务器将哈希“#”片段中的访问令牌返回到请求中提供的重定向 URI

于 2016-09-07T10:22:41.177 回答