网络服务授权最佳实践

时间:2011-04-15 06:45:13

标签: web-services web-applications authentication login

我正在创建一个链接到我正在创建的网络服务的网页。

现在网页很简单。我可以创建一个会话来存储登录信息,这些信息将通过我的jquery url调用webservice传递给webservice。

但是如果它在不同的域上访问我的webservice(通过javascript ajax进行客户端访问)的不同网站怎么办呢? 它会调用我的webservice / login吗?userid =& password =返回一个sessionID 然后该网站必须记住sessionID并在每次通话时包含它? 例如:order / outbound / create?address =& item =& companyName =& sessionID = 435hg34kh

我感谢您在此主题上获得的任何帮助。

并不是说这与上述问题有任何关系(我认为)我正在使用php编写web服务。

1 个答案:

答案 0 :(得分:2)

使用webservices进行身份验证取决于服务合同中的HTTP / Soap协议(通常使用令牌)。

基于第一次调用检索ID然后交换会话ID的解决方案对于客户端调用是好的(没有访问HTTP / Soap协议,只有服务参数,在这种情况下你通常使用光Web服务基于Rest)。

业务端调用也可能依赖于基本身份验证或WS-Security。 Ebay正在将您的方法用于其Web服务,这些服务通常是从业务应用程序(而不是直接客户端浏览器)调用的。

一个结果是服务器和客户端需要有效地维护会话令牌。您最终需要一个注销用户的失效服务(防止登录令牌重新使用)。

跨域Javascript HTTP调用的基本方法记录在here