我应该将基本身份验证、摘要身份验证和 Oauth 中的哪一个用于我的 Web 应用程序,以让用户通过 Restful API 调用访问资源。
Oauth 不是替代基本身份验证和摘要身份验证的更好解决方案吗?
我应该将基本身份验证、摘要身份验证和 Oauth 中的哪一个用于我的 Web 应用程序,以让用户通过 Restful API 调用访问资源。
Oauth 不是替代基本身份验证和摘要身份验证的更好解决方案吗?
在这里修饰许多细节,但是:
http basic:在 Authorize 标头中以明文形式发送用户名和密码
http 摘要:发送用户名和密码,其中密码已由服务器提供的随机数进行哈希处理
这两个版本的 oauth 最初旨在授予第 3 方访问不属于它的资源的权限(例如,我允许移动照片应用代表我发布到 facebook),而无需向第 3 方提供我的凭据。这两种协议的工作原理基本上如下:
oauth1.0a:比 oath2 更安全,但更难实现也要求所有请求都需要签名。
oauth2:依靠 ssl 来保证安全,不需要请求签名。虽然它的主要作者已经放弃了该项目,因为他认为它不符合其最初的设计目标(安全性、互操作性),但它被 Facebook 和 Google 广泛使用。
以下是一些我在这里发现有用的文章:
还没有足够的魔力链接到 rfcs,但这些是权威的来源,如果有点难以消化的话。
Phil Sturgeon有一本不错的电子书(构建你不会讨厌的 API),其中有一整章专门介绍身份验证。它涵盖:
如果您正在考虑在您的 RESTful API 中实现此类机制,我强烈建议您阅读它。
更新 为什么要投反对票?
我也在努力找出这个问题的答案。我会说这取决于您预期的应用程序的范围。oAUTH 限制了对必须构建客户端进行握手的开发人员的访问。
Basic 可以与 Sesame 等许多数据浏览器客户端一起使用,也可以与 Excel 2010 以及任何旧浏览器一起使用。唯一的问题是密码明文传输,可以通过在 https 上托管您的应用程序来缓解这种情况。
不幸的是,对消化不太了解。
我个人正在尝试测试每个的实现:http basic 和 oauth。