我不知道我是否只是有某种盲点或什么,但我已多次阅读OAuth 2规范并仔细阅读邮件列表档案,我还没有找到一个很好的解释为什么隐含格兰特已经开发出用于获得访问令牌的流程.与授权代码授予相比,似乎只是放弃了客户端身份验证,没有非常令人信服的理由.这是如何"针对使用脚本语言在浏览器中实现的客户端进行优化"(引用规范)?
两个流程都是相同的(来源:http://tools.ietf.org/html/draft-ietf-oauth-v2-22):
这是流量分裂的地方.在这两种情况下,此时重定向URI都是由客户端托管的某个端点:
因此我的问题是:通过跳过客户端身份验证步骤获得了什么?
OAuth 2.0具有多个工作流程.关于这两个,我有几个问题.
这两种方法在安全性方面有什么区别?哪一个更安全,为什么?
当服务器可以直接发出Access令牌时,我没有看到为什么在一个工作流中添加额外步骤(令牌的交换授权代码)的原因.
不同的网站说,当客户端应用程序可以保证凭据安全时,使用授权代码流.为什么?
使用oAuth 2.0,在"授权代码"授权授权中,我首先调用"/ authorize",获取代码,然后在调用"/ token"时使用此代码来获取访问令牌.
我的问题:为什么这是流程?我想这是出于安全原因,但我无法弄明白.为什么实现是这样的,并且在第一次调用("/ authorize")之后没有立即获取访问令牌?
为什么我们需要这个代码?
2脚OAuth2用于基于浏览器的应用程序,其中不能公开隐藏任何客户端凭据.三维OAuth2由"Web服务器应用程序"使用,其中服务器之间有第三次调用.这里描述的都很好.
问题:当双腿似乎很好的时候,为什么还要用三条腿来打扰?
这对提供商和客户来说都是更多的工作.为什么没有一个大球员采取行动并取消三条腿?
我正在学习OAuth 2.0,无法在隐式授权流程中获得保护访问令牌的方法.规范中有一些论文和一些看起来相互矛盾的SO答案.有人可以清理一下吗?来自SO答案和规范的引言令我感到困惑:
我的问题:
P1表示通过重定向URI和P2传递给客户端的令牌表示传递通道必须是TLS编辑的.但是P3说哈希片段没有发送到网络.如果访问令牌没有发送,那么它是如何到达客户端的,因为它是哈希片段?无论如何,它必须通过网络发送不是吗?或者使用重定向URI发送令牌可以在没有网络交易的情
唯一可能的解释 - 在引擎盖下浏览器仅通过网络发送url的非哈希部分,并且在加载新页面之后,只需插入哈希片段并使其可用于JS.如果我是对的,我仍然无法理解为什么我们不使用可靠,安全的HTTPS通道作为响应参数发送令牌?
在下面的 帖子中,他们使用术语哈希片段。我不太确定他们的意思是什么。他们指的是网址中散列后的文本吗?
例如 www.someurl.com#somefragment
我在文章中看到的简介如下
在隐式流中,访问令牌直接作为散列 片段(而不是作为 URL 参数)传递。关于散列片段的一件重要事情是,一旦您点击包含散列片段的链接,只有浏览器知道散列片段。浏览器会将哈希片段直接传递到目标网页(重定向 URI/客户端的网页)。哈希片段具有以下属性: