oauth2.0 为什么访问令牌请求需要redirect_uri?

yr9zkbsy  于 12个月前  发布在  其他
关注(0)|答案(3)|浏览(210)

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

hivapdat

hivapdat1#

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

授予访问令牌

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

ql3eal8s

ql3eal8s2#

同样的问题也在这里讨论:https://security.stackexchange.com/questions/44214/what-is-the-purpose-of-oauth-2-0-redirect-uri-checking
The best response imho is vinod one,即使用灵活的redirect_uri(使用通配符)时减少表面攻击

aoyhnmkz

aoyhnmkz3#

在以下情况下需要重定向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


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

相关问题