身份验证和REST

时间:2011-08-23 14:01:23

标签: .net security authentication rest

我已经实施了一项胜利服务。我想扩展它以通过REST启用一些功能。我已经使用WCF休息功能实现了它,它可以按我的意愿工作。到目前为止一切都很好。

我的问题是安全性和身份验证。据我所知,没有“一种方式”进行身份验证,我已经阅读了几篇关于它的文章......还有这里和其他论坛,互联网上的博客......我完全迷失了。我已阅读有关SSL,OAUTH,HMAC等的优缺点。

我需要的功能是以某种方式验证用户,用户名/密码对我来说是最好的方式。

这些用户来自互联网浏览器,但后来我计划在未来拥有更多客户端,例如Android或iPhone应用程序。

那么,您认为哪种方法可以为用户验证休息协议的最佳(最简单......)方式?

谢谢!

.Net4 / WCF / Visual Studio 2010

3 个答案:

答案 0 :(得分:1)

  

那么,您认为哪种方法可以为用户验证休息协议的最佳(最简单......)方式?

最简单的RESTful身份验证方案绝对是HTTP基本身份验证。当然,它不是很安全,但它可能是第一步。

在服务器端,只需设置HTTP反向代理(Apache,Cherokee或任何其他代码),即可使用零代码执行此操作。

在客户端,大多数情况下它也是零代码(使用Java,.Net,jQuery.ajax,纯XMLHttpRequest等)。

答案 1 :(得分:0)

根据定义,任何身份验证方法都需要每用户状态。即使该状态是密码或api密钥的形式。但是我所使用的每个REST API都忽略了REST的这一部分,因为它们都需要API密钥。当安全性成为问题时,REST可能不是最佳选择。浏览器擅长跟踪会话ID,并且使用会话ID比API密钥更安全,因为值过期。使用会话ID是一种非常安全且经过验证的设计模式,尽管它“不那么RESTful”。但是,开销要求非常小。

答案 2 :(得分:0)

如果您想通过HTTP对HTTP或REST服务进行身份验证,请按照AWS的说法进行操作。它有效,它在生产中,有实现的例子(客户端和服务器端)。

http://s3.amazonaws.com/doc/s3-developer-guide/RESTAuthentication.html

相关问题