Tag: restful authentication

REST风格的Web服务 – 如何authentication来自其他服务的请求?

我正在devise一个需要被用户访问的REST风格的Web服务,也包括其他Web服务和应用程序。 所有传入的请求都需要进行身份validation。 所有通信都通过HTTPS进行。 用户authentication将基于通过将用户名和密码(通过SSL连接)发布到由服务提供的/会话资源而获取的authentication令牌来工作。 在Web服务客户端的情况下,在客户端服务之后没有最终用户 。 这些请求由计划的任务,事件或一些其他计算机操作启动。 连接服务列表事先已知(显然,我猜)。 我应该如何validation来自其他(networking)服务的这些请求? 我希望validation过程尽可能容易地实现这些服务,但不以安全为代价。 这样的场景的标准和最佳实践是什么? 我可以想到的选项(或者已经向我build议): 让客户端服务使用“假”用户名和密码,并以与用户相同的方式对其进行身份validation。 我不喜欢这个选项 – 只是觉得不对。 为客户端服务分配永久的应用程序ID,也可能是应用程序密钥。 据我了解,这是有相同的用户名+密码。 有了这个ID和密钥,我可以对每个请求进行身份validation,或者创build一个身份validation令牌来validation进一步的请求。 无论哪种方式,我不喜欢这个选项,因为任何能够获得应用程序ID和密钥的人都可以模拟客户端。 我可以添加一个IP地址检查到以前的选项。 这将使得执行虚假请求变得更困难。 客户端证书。 设置我自己的证书颁发机构,创build根证书,并为客户机服务创build客户机证书。 但是,有几个问题想到:a)如何仍然允许用户在没有证书的情况下进行身份validation; b)从客户端服务的angular度来看,这种情况有多复杂? 还有其他的东西 – 那里必须有其他的解决scheme吗? 我的服务将运行在Java上,但是我特意留下了关于它将构build的具体框架的信息,因为我对基本原则更感兴趣,而不是更多地关注实现细节 – 我认为这是最好的解决scheme无论底层框架如何,都可以实现。 不过,我对这个主题有点不熟悉,所以对于实际实现(如有用的第三方库,文章等)的具体提示和例子也将非常感激。

RESTfulauthentication

RESTfulauthentication是什么意思,它是如何工作的? 我无法在Google上find一个好的概述。 我唯一的理解是,你在URL中传递会话密钥(remeberal),但这可能是非常错误的。

为什么我的JavaScript得到一个“否”访问控制 – 允许来源“标题出现在请求的资源”错误时,邮差不?

我试图通过连接到内置在Flask中的RESTful API来使用JavaScript进行授权。 但是,当我提出请求时,出现以下错误: XMLHttpRequest无法加载http:// myApiUrl / login 。 请求的资源上没有“Access-Control-Allow-Origin”标题。 原因'null'因此不被允许访问。 我知道API或远程资源必须设置标题,但为什么当我通过Chrome扩展邮差发送请求时,它会工作? 这是请求代码: $.ajax({ type: "POST", dataType: 'text', url: api, username: 'user', password: 'pass', crossDomain : true, xhrFields: { withCredentials: true } }) .done(function( data ) { console.log("done"); }) .fail( function(xhr, textStatus, errorThrown) { alert(xhr.responseText); alert(textStatus); });