如何解决使用TLS时是否仍需要授权码授予?
oAuth流中授权代码的主要目的是防止重播攻击,TLS也可以防止重播攻击。
如果仅使用TLS向启用了oAuth的服务器发出密码授予请求,那还不够吗?
解决方法
oAuth流程中授权代码的主要目的是 防止重放攻击
我认为授权码流的主要目的与防止重放攻击不同。 OAuth对此不做任何保证,无论授予如何,OAuth 2.0 suggests我们始终对所有授予使用TLS来传输访问令牌:
访问令牌凭证必须仅使用TLS作为 在1.6节中进行了描述,其中服务器身份验证由
定义 [RFC2818]。
OAuth 2.0中也有其他授权,例如;
- 授权码
- PKCE
- 隐含(传统)
- 客户凭证
- 密码(旧版)
- 设备代码
- 刷新令牌
,每个都有其自己的目的。密码流是遗留的,由于以下原因,您应该有充分的理由继续使用它:
- 您的用户无缘无故地将其凭据公开给第三方。这是OAuth存在的原因,它不与第三方共享凭据(例如Service Foo)以获取其服务(例如Google,Facebook)的访问权限
- 用户没有任何控制权,您的 Service Foo 可以使用这些凭据进行操作。
像隐式流一样,这是必需的,但是现在根据设备和PKCE的用法,将密码和隐式流都替换为设备和PKCE。例如;如果一个应用程序使用“密码授予”的主要原因是其客户端不支持重定向,则他们现在也可以使用“设备代码授予”。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。