【发布时间】:2016-10-06 03:57:47
【问题描述】:
我正在开发一个基于rfc6749 的oauth2 提供程序,我想知道,为什么Access Token Request 需要redirect_uri? /token 端点没有重定向,并且假定状态已经过验证(即针对 CSRF),因此 redirectURI 的副本对我来说没有多大意义。
【问题讨论】:
我正在开发一个基于rfc6749 的oauth2 提供程序,我想知道,为什么Access Token Request 需要redirect_uri? /token 端点没有重定向,并且假定状态已经过验证(即针对 CSRF),因此 redirectURI 的副本对我来说没有多大意义。
【问题讨论】:
在身份验证代码流中,它用于验证第一个身份验证请求中的redirect_uri。 https://www.oauth.com/oauth2-servers/redirect-uris/redirect-uri-validation/
授予访问令牌
令牌端点将收到交换授权的请求 访问令牌的代码。此请求将包含一个重定向 URL,如 以及授权码。作为额外的安全措施, 服务器应验证此请求中的重定向 URL 是否匹配 正是初始中包含的重定向 URL 此授权码的授权请求。如果重定向 URL 不匹配,服务器拒绝请求并出错。
【讨论】:
这里讨论了同样的问题: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(使用通配符)时减少表面攻击
【讨论】:
在以下情况下需要重定向 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
【讨论】: