【发布时间】:2011-08-02 08:37:12
【问题描述】:
几年前,我向现有的 Web 应用程序添加了一个 Web 服务接口,该接口允许创建自定义客户端来操作应用程序持有的数据。客户端主要是 .NET,而 Web 应用程序是 Java(托管在 Tomcat 服务器中),由于那时这两个平台之间的互操作性不是很好,我创建了自己的小型本地身份验证方案,使用二进制安全令牌由双方的处理程序拼接到请求/响应xml中。
从那时起,双方的技术都取得了进步(Java 方面的 Metro 项目强调与 .NET 世界的互操作性);不幸的是,我一直忙于其他项目,并没有跟上细节。但是从我目前所读到的内容来看,难道不应该正确地使用 WS-Security、WS-Policy 等(相对)新标准来做类似的事情吗?
从那时起,我就有机会更新代码,这次我真的很想“正确”地做。旧解决方案困扰我的是安全令牌的存在没有反映在 wsdl 中(任何实现客户端的人都必须从其他来源了解它,并包括我为处理程序提供的一些类,令牌和一些额外的代码行以将它们连接到 Web 服务) - 据我了解 WS-* 规范,WS-Policy 或 WS-SecurityPolicy 应该可以实现这一点?
但不知何故,到目前为止,我一直无法在网上找到任何资源(示例、教程等)来解释人们如何开始实施类似的东西。
因此,考虑到最新的技术和标准(例如使用 Metro 框架的服务器,以及使用 WCF 的 .NET 3 或 4 客户端),是否有可能创建使用基本用户/对服务“登录”(即创建某种会话或“对话”)的密码验证,然后允许在会话保持有效时对服务执行任何操作,并在用户明确“登录”后使会话无效Out”或超时到期?
【问题讨论】:
标签: java .net web-services ws-security