首页 文章

OAuth2.0隐式授权流程 . 为什么要使用url哈希片段?

提问于
浏览
24

通过新的OAuth2.0规范(rfc 6749),我看到Implicit Grant协议工作流使用Url Hash Fragments在Authorization服务器和公共客户端之间交换'access_token' .

见规格:http://tools.ietf.org/html/rfc6749#section-4.2

授权授权响应不能作为“查询参数”而不是Url片段发送,保持流的其他部分不变吗?

基本上我无法理解OAuth2的规范作者为隐式授权流授权选择url哈希片段的限制?

2 回答

  • 6

    隐式授权流程是为java脚本客户端完成的,我认为他们使用'#'而不是'?'不将访问令牌发送到重定向URL的服务器端,但它仍然可以访问javascript,在我们的情况下客户端可能出于安全原因“不通过网络共享您的访问令牌可能是不安全的,就像用于重定向URL一样”

  • 21

    加我2美分..

    从安全的角度来看,使用URI Fragment代替查询参数 . URI段永远不会通过网络发送到重定向网址 . 对于例如在Oauth授权服务器上登录后,位置 Headers 将具有“ur redirect url”#access_token = uraccesstoken,响应代码将为302.当浏览器看到302时,它将自动重定向到位置标头值(用户代理)自动执行并且javascript无法阻止此(afaik)) .

    由于它是一个URI片段,只有重定向url通过网络发送,uri片段不是 .

    如果它是查询参数,则查询参数也将通过网络发送 . 即使使用TLS,查询参数也会在您的代理日志中显示,使我们的访问令牌为非预期人员所知,从而导致访问令牌泄露 .

相关问题