构建RESTFul API,如何进行身份验证

时间:2011-01-21 04:25:19

标签: oauth

我正在构建一个RESTFul API,并想知道执行身份验证的最佳方法是什么?用户需要进行身份验证。我知道三种方式:

1。)在每个RESTFul请求中传递API密钥:

http://api.mydomain.com/api-key-here/get-users

这很好,因为开发人员可以通过简单地将URL字符串复制到浏览器中来立即开始使用API​​。是否存在任何潜在的安全风险?

2.)每个请求都会在请求的标头中传递API密钥。

这似乎更安全,但开发人员无法通过浏览器发出请求。 CURL是必需的。

3。)oAuth

我必须承认我对它不太了解,但似乎很受欢迎。我担心的是开发人员开始使用API​​的障碍。他们首先必须熟悉oAuth,然后进行设置。

思考?非常感谢。

2 个答案:

答案 0 :(得分:2)

如果您的担忧给开发人员带来高昂的入门成本负担,我建议您使用基本身份验证,但需要通过https运行您的API。

我使用Diligent Street执行此操作并且效果非常好。我使用API​​密钥并将其与Secret一起作为基本身份验证的用户名/密码组合。

答案 1 :(得分:0)

我使用了这里找到的技术:Build a RESTful API。此解决方案使用 API ID API密码 MD5 哈希值和UNIX时间戳,并传入HTTP标头。此身份验证方法与Mashery’s Authentication使用的方法相同。

此链接引用并包含一个完整的入门套件,用于创建具有验证成员资格和* API使用量计量 *的API配备EF数据库。

对于测试服务,您可以使用RESTClient使用自定义标头执行HTTP调用,而不是使用Curl。