如何保护RESTful Web服务(PROVIDER)

时间:2011-12-11 17:15:25

标签: rest oauth authorization provider

我需要提供商提供安全的Restfull服务。我希望用户必须拥有使用REST服务的授权,并且我可以生成使用stadistic或者如果不是注册开发人员,则根本不允许调用REST服务。

我一直在考虑用户在网址中发送电子邮件和密码(http://autor.derf.com/api/search/email?=dsdfd@gmail.com&passwd=dasffsdf;)但不是非常安全。

此外,我已阅读有关oauth 2.0的内容,但文档对Java来说非常糟糕。

还有其他方法可以获得具有授权的RESTful API吗?

我希望通过Iphone,Android,Windows Phone和网络访问Restfull API

提前致谢;)

1 个答案:

答案 0 :(得分:1)

如果您打算自己编写服务的所有客户端(iPhone,Android等),那么发送电子邮件和密码是一个不错的选择,只要提供商通过安全传输层(例如SSL / HTTPS)进行通信。 / p>

如果您认为要公开API,则可以随后添加对OAuth 1或2的支持。 (OAUth的整个想法是保护用户的密码,并对客户端可以使用的API以及使用时间进行更细粒度的控制。)

但是,在您的情况下,我至少会考虑使用基本身份验证,其中典型的HTTP请求看起来像这样:

GET /path/to/api HTTP/1.1
Host: www.example.com
Authorization: Basic aHR0cHdhdGNoOmY=

“基本”之后的哈希只是base64编码"username:password",或者在您的情况下"email:password"。如果有人拦截它,很容易简单地解码以获得纯文本用户凭据。所以HTTPS是必须的。

»More information on basic authentication at wikipedia