技术开发 频道

WSE 3.0 UsernameToken应用


【IT168技术文档】

  通过这篇文章的步骤可以比较详细的了解如何在Web Service中使用WSE 3.0的UsernameToken,通过这个例子,也能够大致了解WSE 3.0的工作方式。
  1. 在配置中定义安全策略(Policy),然后在Web Service中运用安全策略非常简单方便。产品发布之后,通过修改安全策略的配置文件,可以满足不同的安全应用要求,而不需要修改代码。
  下面示例在Web Service端定义了一个名称为ServerPolicy的安全策略,通过给Web Service的类MyService添加Attribute [Policy("ServerPolicy")]应用这个安全策略;在客户端定义的名称为ClientPolicy,通过 serviceProxy.SetPolicy("ClientPolicy");这个语句在客户端应用这个安全策略。在开发过程中,WSE 3.0的应用就这么简单。
  2. WSE 3.0跟.Net Framework的Web Service整合在一起。
客户端请使用带Wse后缀的那个Proxy。客户端发送Web Service调用请求的时候,WSE插入一些Filter,对即将发送的SOAP消息进行一些处理,例如签名、加密等。服务器端Web Service调用请求后,WSE同样插入一些Filter先对消息进行解密、签名的验证等。这些都由WSE自动完成,对Web Service的开发不会造成任何影响以及带来额外的代码工作,并享受WSE带来的安全性。
  3. 其他的一些特性,例如方便的添加用户自定义的安全断言;大数据量MTOM的支持;使用TCP方式传输SOAP消息,从而使Web Service可以脱离Http Server;SOAP消息的路由等。

  测试环境:
  一台Server机器A用于Host Web Service,一台Client机器B用作客户端调用。两台机器都都处在Windows域环境中(内网),访问外网需要代理+域身份认证,域内的安全策略比较严格。
  为了使用WSE 3.0,机器A和B都必须安装有.Net Framework 2.0以及SDK。在机器A上,请将Framework 2.0 SDK安装目录\v2.0\Bin路径加入到Windows的Path环境变量中。
  WSE 3.0下载地址。下载并安装WSE 3.0,在机器A上必须安装Tools和Samples,如果作为开发环境最好是选择跟Visual Studio 2005整合方式(机器A是我的开发环境,下面示例的开发都是在机器A上完成),这样开发过程中配置WSE 3.0比较方便,在机器B上安装WSE 3.0 Runtime就可以了。

  1. CA证书安装
  WSE 3.0中UsernameToken需要跟一个服务器端的X.509 Certificate结合使用,下面的步骤在机器A上创建这个服务器端证书。
  下面的批处理脚本在机器A上创建一个测试用的证书MyServiceCert并作一些配置。将脚本保存到一个.bat文件中,将文件拷贝到C:\ Program Files\Microsoft WSE\v3.0\Samples目录下并运行。运行完后请确认makecert.exe这一句有执行成功。如果硬盘分区是FAT32, winhttpcertcfg执行失败没有关系,如果是NTFS,需要确保这一句操作成功。
  winhttpcertcfg是确保.Net运行帐号有权限访问证书的私匙文件以读取私匙信息,也可以使用C:\Program Files\Microsoft WSE\v3.0\Tools\WseCertificate3.exe进行配置。运行WseCertificate3.exe,Certificate Location选择Local Machine,Store Name选择Personal,然后点击Open Certificate按钮,选择MyServiceCert这个证书并确认。这时WseCertificate3.exe会加载 MyServiceCert证书的相关信息,点击View Private Key File Properties按钮,弹出的实际上是私匙文件的属性对话框,如果是NTFS格式的磁盘,在文件属性对话框里会有安全这一个属性页,确保ASPNET 帐号或者Network Service帐号(或者是你在ASP.NET的machine.config或Application Pool中配置的帐号)有权限访问这个文件。
0
相关文章