我正在编写一个名为Phoenix的RESTful数据库服务器。作为整个应用程序数据的简单接口,安全性是一个非常重要的问题,我对您可能建议的任何身份验证解决方案感兴趣。
需要:
我很想听听你的建议 - 谢谢你!
杰米
答案 0 :(得分:1)
此处没有太多关于您的安全性或实施需求的信息。快速答案是基于SSL的摘要或摘要,或已签名的请求。有没有理由不使用这些?
签名请求通常会添加时间戳和/或随机数,因此可以对任何请求进行身份验证。有关说明和库,请参阅Amazon AWS身份验证文档。
答案 1 :(得分:0)
我有一个类似的服务器。我选择使用OAuth签名简单,
http://oauth.net/core/1.0#signing_process
我们不强制执行nonce,只是将时间戳限制为一个短窗口(30秒)以阻止重播。
OAuth库在许多平台上都可用,因此您无需编写太多代码来实现它。不知道为什么你认为OAuth不可实现。
对于允许访问数据的每个客户端,都会为其分配一个consumer_key和一个consumer_secret。所有请求都使用consumer_secret进行签名,因此只有知道秘密的客户才能访问。
我们还考虑了其他选择。 HTTTP Basic Auth over SSL太贵了。 HTTP Digest Auth太慢,因为它需要等待挑战。