对于RESTful Web服务,我们说服务器不应该存储任何状态.现在,对于每个请求,"用户"必须经过身份验证,并且必须拥有他/她希望执行的操作的授权.
现在,每个请求都将包含该用户的授权数据.这是我的困惑:
假设主页上有登录名和密码字段.用户输入用户名/密码,该用户名/密码被发送回服务器,用户验证然后返回"某个令牌".现在,每个请求都会将此令牌发送到服务器.问题(S):
我可能误解了RESTful身份验证/授权的概念.但实际情况是,对于每个http请求,"服务"需要访问数据库以验证凭据吗?有没有什么东西可以简化这个过程,仍然坚持宁静的原则?我可以想到有一个存储细节的缓存,并且在服务器重启的情况下,它只是访问数据库.这只是一个可能使系统复杂化的性能优势(可能值得,不知道).这是唯一的解决方案吗?
因此,从REST的理论/概念角度(不是必要的实现)如何处理这个问题(如果它是一个问题)?您的专业经验如何处理这个问题以及Restful是如何处理的?
我们正在研究Restlet + J2EE + MySQL Restful Web服务,我弹出这个问题,但没有令人满意的答案(谷歌,Stackoverflow等)我知道HTTP的基本和摘要授权,但我不熟悉根据上述说明,存储/检索的内部结构.
java performance web-services restful-authentication restlet
我即将在我们的网站上实现RESTful API(基于WCF数据服务,但这可能无关紧要).
通过此API提供的所有数据都属于我的服务器的某些用户,因此我需要确保只有这些用户才能访问我的资源.因此,所有请求都必须使用登录/密码组合作为请求的一部分执行.
在这种情况下,推荐的防止暴力攻击的方法是什么?
我正在考虑记录因错误凭据而被拒绝的失败请求,并在超过某个失败请求阈值后忽略来自同一IP的请求.这是标准方法,还是我缺少一些重要的东西?
如何在REST Web服务中编写用户身份验证方法?我是Web服务的初学者.
我可以在soap Web服务中访问HttpServlet Request对象,如下所示:在服务实现中为WebServiceContext声明一个私有字段,并将其注释为资源:
@Resource
private WebServiceContext context;
Run Code Online (Sandbox Code Playgroud)
要获取HttpServletRequet对象,我编写如下代码:
MessageContext ctx = context.getMessageContext();
HttpServletRequest request =(HttpServletRequest)ctx.get(AbstractHTTPDestination.HTTP_REQUEST);
Run Code Online (Sandbox Code Playgroud)
但这些东西并不适用于宁静的Web服务.我正在使用Apache CXF开发restful web服务.请告诉我如何才能访问HttpServletRequest对象.
我有2台服务器,一台负责前端应用程序和用户身份验证.此服务器呈现以javascript编码的单个页面应用程序.这个javascript应用程序通过第二台服务器上托管的REST api从第二台服务器渲染数据.
我想保护第二台服务器.我想只有前端应用程序能够调用后端服务器.
目前,任何人都可以从浏览器调用其余的api来查询数据.
谢谢你的帮助.
security api rest restful-authentication restful-architecture
目前我有一个rails 3应用程序,它使用devise插件进行网站身份验证.但现在我将添加一个iPhone应用程序,所以我将向客户端设备(iPhone)公开api调用.我如何实现auth模块,以便iPhone客户端可以对rails网站进行身份验证并访问某些API?
我应该创建oauth提供程序,令牌库auth还是简单的http auth?
ruby authentication api restful-authentication ruby-on-rails-3
我想在Rails 3和iOS应用程序中构建Web服务以使用此服务.我需要简单的事情.用户第一次打开iOS应用程序时,获取登录界面.登录后,iOS应用程序可以发送和获取请求.
我已经在Rails上使用Devise进行身份验证,并发现RESTKit for iOS可以映射对象并使用RESTfull Web服务,我没有找到任何关于确认协同工作的内容.
我的问题是,iOS和RoR 双方使用的最佳解决方案是什么才能使其工作?
我目前正在寻找一种使用基于令牌的身份验证来保护REST API的方法.我正在使用Flask在Python中开发API,并发现了flask-security扩展,它似乎有很多有趣的功能.
令牌中提到的功能之一是令牌认证.
根据文件:
通过执行HTTP POST检索用户身份验证令牌来启用基于令牌的身份验证,其中身份验证详细信息为针对身份验证端点的JSON数据.成功调用此端点将返回用户的ID及其身份验证令牌.此令牌可用于对受保护资源的后续请求.
但是,我仍然对如何使用flask-security实现此功能感到困惑.一些在线研究让我使用了诸如@auth_token_required之类的东西,但我把所有东西放在一起都有些麻烦.烧瓶安全文档本身并不是很有帮助.
例如,用户如何获得身份验证令牌?什么是身份验证端点?
如果你能引导我朝着正确的方向前进,那就太棒了.代码示例也很棒:-)
我正在尝试使用restify.js构建RESTful api,但我不想向所有人公开api.我将使用基于令牌的身份验证.我心中的过程是这样的,我不确定它是否合理.
用户向api发送用户名/密码以获取令牌.
这个令牌应该包含在每个其他api的调用请求中.
如果这是合理的,我可以使用任何node.js库吗?
另外,我该如何保护令牌?如果有人用令牌拦截了http请求,那么该人将获得api url和令牌.然后他可以按照自己的意愿发送请求.有办法避免这种情况吗?
非常感谢!
我使用以下方法调用Web服务.
ResponseBean responseBean = getRestTemplate()
.postForObject(url, customerBean, ResponseBean.class);
Run Code Online (Sandbox Code Playgroud)
现在我的要求发生了变化.我想发送带有请求的2个标头.我该怎么办?
Customer bean是一个类,其中包含将用作请求主体的所有数据.
在这种情况下如何添加标题?