OAuth2.0隐式授予流程。 为什么使用url散列碎片?
阅读新的OAuth2.0规范(rfc 6749)后,我发现隐式授权协议工作流使用Url哈希碎片在授权服务器和公共客户端之间交换'access_token'。
请参阅规格:http://tools.ietf.org/html/rfc6749#section-4.2
无法将授权授予响应作为“Query Params”而不是Url片段发送,保持流程的其他部分原样?
基本上我无法理解OAuth2的规范作者为隐式授权流授权选择url散列片段的限制吗?
隐式授予流程是为java脚本客户端完成的,我认为他们使用'#'而不是'?' 不要将访问令牌发送到重定向URL的服务器端,但它仍然可以达到JavaScript,这是我们的案例中的客户端可能出于安全原因“不通过网络共享您的访问令牌可能不像用于重定向URL的访问令牌那样安全”
加我2美分..
从安全的角度来看,使用URI片段代替查询参数。 该URI段永远不会通过网络发送到重定向url。 例如,在Oauth授权服务器上登录后,位置标题将具有“您的重定向url”#access_token = uraccesstoken,并且响应代码将为302.当浏览器看到302时,它将自动重定向到位置标题值(用户代理会自动执行此操作,并且JavaScript无法停止此操作(afaik))。
由于它是一个URI片段,只有重定向url通过网络发送,而uri片段不是。
如果它是查询参数,则查询参数也将通过网络发送。 即使使用TLS,查询参数也会在您的代理日志中可见,使我们的访问令牌对于意外的人员而言是已知的,从而导致访问令牌泄漏。
链接地址: http://www.djcxy.com/p/48011.html上一篇: OAuth2.0 Implicit Grant flow. Why use url hash fragments?
下一篇: How do you sign a header using MAC Access Authentication on Android?