【译】Secure Application That Use Web Service
Web 服务能够确保安全,但是当构建一个基于Web 服务的可扩展的分布式应用的时候,它的局限应仍然存在。特别地,很难构建一个跨越安全域的可扩展的Application。目前,你可以通过在安全传输通道上传输消息来加固Web 服务,比如安全套接层协议(SSL),但是那只能在端到端通信的时候使用。也就是说,如果SOAP消息在到达终端接受者之前必须通过一个或者若干个中间媒介来传送并且真个路由都是用SSL,那么,终端接受者仍然不得不与发送者沟通,以认证SOAP消息的可靠性。这种情况就比较难扩展了。
支持消息级安全
WSE提供了三个特性来实现SOAP消息的安全传输:
安全认证 可以确保在传送SOAP消息的全部路线上的Web服务的安全。这个不同于一个安全传送,比如SSL,它只是做到了端到端的安全。
数字签名 允许SOAP消息接受者验证一个SOAP消息在签名之后是否被篡改了。
加密 使得只有被指定的接受者可以阅读消息的内容。加密SOAP消息会产生一个与指定的接受者共享的一个密钥。
WSE的其中一种有助于构建可扩展的分布式应用程序的方法就是通过一种高效而可扩展的机制来确保Web服务的安全。它使用WS-Security规范中定义的机制将安全认证信息放在SOAP消息之中。这个需要一个客户端来获取证书,证书的来源是一个消息发送者和接受者之外的可信第三方。当消息发送者收到SOAP请求,那些通常被称为安全令牌的安全证书就被放置在SOAP消息之内。当Web服务器收到的SOAP请求的时候,它并不需要进行另一次网络请求回到或者客户端的计算机或信任的第三方验证的安全令牌的完整性。这可能是因为安全凭据是来自受信任源和客户端已经证明它拥有的安全令牌。客户可以通过执行加密操作证明他们自己的安全令牌,如数字签名的SOAP消息。接收端可以通过执行另一个加密操作验证客户端拥有来自可靠的来源的安全令牌,如核实的数字签名。而不必返回到源的全权证书,至少有一个网络请求被保存,进一步提高应用的可扩展性。