RESTful数据库服务器的最佳身份验证解决方

时间:2009-09-03 11:08:28

标签: database authentication

我正在编写一个名为Phoenix的RESTful数据库服务器。作为整个应用程序数据的简单接口,安全性是一个非常重要的问题,我对您可能建议的任何身份验证解决方案感兴趣。

需要:

  • 安全 - 它必须非常难以打破。签名请求可能是一种很好的方法,但考虑到它的REST,发送的参数并不多,所以我不知道唱歌会有什么好处。
  • 最小 - 我宁愿它不需要四个请求来比较HMAC签名请求中的六个令牌 - 服务器的USP是简单的,所以客户端的身份验证必须是容易。
  • 可实现 - 它必须适合系统,即系统数据库服务器。所以,例如,oAuth不会在这里工作。

我很想听听你的建议 - 谢谢你!

杰米

2 个答案:

答案 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太慢,因为它需要等待挑战。