【发布时间】:2011-10-09 17:10:54
【问题描述】:
我正在为我维护的一个应用程序构建一个 RESTful API。我们目前正在寻求在其中构建各种需要更多受控访问和安全性的东西。在研究如何保护 API 时,我发现了一些关于使用什么形式的不同意见。我已经看到一些资源说 HTTP-Auth 是要走的路,而其他人更喜欢 API 密钥,甚至其他人(包括我在 SO 上找到的问题)都对 OAuth 发誓。
当然,那些更喜欢 API 密钥的人会说 OAuth 是为代表用户获取访问权限的应用程序设计的(据我了解,例如使用您的 Facebook 登录非 Facebook 网站)帐户),而不是直接访问他们专门注册的站点上的资源的用户(例如访问 Twitter 服务器的官方 Twitter 客户端)。但是,对于 OAuth 的建议似乎甚至可以满足最基本的身份验证需求。
那么,我的问题是 - 假设这一切都是通过 HTTPS 完成的,这三者之间有哪些实际区别?什么时候应该优先考虑一个?
【问题讨论】:
-
你最后做了什么?
-
@Irwin - 我很久以前就问过这个问题,并且已经从需要它的项目中移开,但我最终使用了 API 密钥和生成的密码(用户从未见过)的组合,使用 HTTP 身份验证发送。
标签: security api restful-authentication