简单的Web服务认证/授权不那么简单?

时间:2011-08-02 08:37:12

标签: java .net web-services ws-security

几年前,我在现有的Web应用程序中添加了一个Web服务接口,该接口允许创建自定义客户端来操纵应用程序持有的数据。客户端主要是.NET,而Web应用程序是Java(托管在Tomcat服务器中),从那时起,这两个平台之间的互操作性就不那么好了,我使用二进制安全令牌创建了自己的小型自制的auth方案。由双方的处理程序拼接到请求/响应xml中。

从那时起,技术在双方都取得了进展(Java方面的Metro项目强调与.NET世界的互操作性);不幸的是,我一直忙于其他项目,并没有及时了解细节。但是从我到目前为止所读到的内容来看,不应该使用(相对)新标准(如WS-Security,WS-Policy等)来做类似正确的事情吗?

我有机会从当时更新代码,这次我真的很想“正确”。关于旧解决方案困扰我的一点是安全令牌的存在没有反映在wsdl中(实现客户端的任何人都必须从其他来源了解它,并包括我为处理程序提供的一些类,令牌和一些额外的代码行将它们连接到Web服务) - 据我所知,WS-*规范应该可以使用WS-Policy或WS-SecurityPolicy吗?

但不知怎的,我到目前为止无法在网上找到任何资源(示例,教程等),这些资源可以解释人们如何开始实现类似的东西。

因此,给定最新的技术和标准(如使用Metro框架的服务器,以及使用WCF的.NET 3或4中的客户端),是否可以创建使用基本用户的Web服务/密码认证到“登录”(即创建某种会话或“会话”)到服务,然后允许在会话保持有效时对服务执行任何操作,并在用户明确“记录”后使会话无效出“或超时到期?

1 个答案:

答案 0 :(得分:1)

我自己没有使用Metro,但我只推荐使用SWS或CXF。 (但是,根据我的经验,WS身份验证和授权绝非简单)