第八章 创建和使用策略
本主题介绍如何在 IRIS
中使用 WS-Policy
支持。WS-Policy
使您能够指定要使用或预期的 WS-Security
标头。它还使能够指定 WS-Addressing
标头和 MTOM
的使用(在创建 Web
服务和 Web
客户端中描述)。可以在单独的类中创建策略,而不是直接编辑 Web
服务或 Web
客户端。在大多数情况下,不需要进行低级编程。
概述
在 IRIS
中,Web
服务或客户端的策略(或策略集合)包含在单独的配置类中,即 %SOAP.Configuration
的子类。编译该类时,策略生效。
通常不需要编码。但是,在某些情况下,可以通过编程指定详细信息,而不是将该元素硬编码到策略中。
配置类的作用
当编译配置类时,Web
服务或客户端的未来操作将受到如下影响:
-
Web
服务或客户端根据策略的详细信息在出站消息中包含额外的标头元素。 -
Web
服务或客户端根据策略验证传入的SOAP
消息。这包括在适当的情况下解密传入的消息。 - 如果合适,
Web
服务或客户端可以选择加密传出消息。 - 对于
Web
服务,WSDL
会自动受到影响。具体来说,会添加<wsp:Policy>
元素,并且命名空间声明包括以下内容:
xmlns:wsp="http://www.w3.org/ns/ws-policy"
重要提示:如果配置类映射到多个命名空间,则必须在每个命名空间中对其进行编译。
与 WS-Security
、WS-Addressing
和 MTOM
支持的关系
IRIS
对 WS-Policy
的支持建立在 IRIS
对 WS-Security
、WS-Addressing
和 MTOM
的支持之上。请注意以下几点:
- 如果策略不包含安全策略,
IRIS
将使用Web
服务或Web
客户端的SecurityOut
属性。(要手动将安全标头元素添加到Web
服务或客户端,请将它们添加到SecurityOut
属性,如其他地方所述。) - 如果策略确实包含安全策略,
IRIS
将忽略Web
服务或Web
客户端的SecurityOut
属性,但与该策略相关的任何元素除外。
例如,当使用相互 X.509
证书安全策略时,可以指定一个 IRIS
凭证集以直接在策略中使用,或者您可以在创建 %SYS.X509Credentials
的实例,并将其包含在二进制安全令牌中添加到 SecurityOut
属性。如果没有在策略中直接指定凭证集,IRIS
将从 SecurityOut
属性中检索二进制安全令牌并使用它。但是 IRIS
会忽略 SecurityOut
属性中的其他元素,因为它们不适用于此场景。
- 如果策略需要
WS-Addressing
,IRIS
将忽略WSADDRESSING
类参数。
但是,如果设置了 AddressingOut
属性,IRIS
将使用它指定的 WS-Addressing
标头。否则,它将使用默认的 WS-Addressing
标头集。
- 如果策略需要
MTOM
,IRIS
将忽略MTOMREQUIRED
类参数和MTOMRequired
属性。
Web
服务和 Web
客户端的关系
当将策略附加到 Web
服务时,所有客户端都必须能够遵守该策略。如果 Web
服务策略不包含任何策略替代方案,则客户端必须具有与 Web
服务相同的策略,并在需要时用客户端证书代替服务器端证书。
类似地,如果将策略附加到 Web
客户端,则服务必须能够遵守该策略。
实际操作中,如果服务和客户端都是在 IRIS
中创建的,则以下步骤是最简单的:
- 创建
Web
服务类。 - 使用服务策略创建
Web
服务配置类。 - 生成客户端类,包括客户端配置类。
完成此操作后,检查生成的客户端类并根据需要进行更改。
通常还会为其创建一个包装类。
- 检查生成的配置类并根据需要进行更改。
网友评论