工作方式: SOAP 消息安全性

CICS® SOAP 消息的安全性基于对标准网络规范的支持,包括 WS-Security 和 WS-Trust 规范。 此支持为您提供了用于 SOAP 消息的认证,完整性和机密性的各种选项。 了解提供支持的组件很有用。

稳定功能:

稳定了对 WS-Security 功能 SOAP 消息的签名和加密支持。 考虑使用传输层安全作为保护 SOAP 信息的替代方案。 另请参阅 " 稳定通知 "和 "停止的职能 "。

6.3CICS TS 6.3 起,不再支持为 WS-Security 功能签署和加密 SOAP 消息。

6.16.2 稳定了对 WS-Security 功能 SOAP 消息的签名和加密支持。

支持 WS-Security , WS-Trust 和 WS-Policy 规范

Web Service 安全性 (WS-Security) 规范提供了一组基本 SOAP 消息扩展,用于通过定义要在 SOAP 头中用于消息级安全性的元素来构建安全 Web Service。 它指定使用安全性令牌,数字签名和 XML 加密来保护和认证 SOAP 消息。 它指定使用数字签名为 SOAP 消息中的 XML 元素提供完整性,并指定使用加密为 SOAP 消息中的 XML 元素提供机密性。 该规范允许您保护消息的主体或主体或头中的任何 XML 元素。 您可以对 SOAP 消息中的不同元素提供不同级别的保护。 更多信息,请参阅 Web 服务安全:SOAP 消息安全性 1.0 规范

Web Service 信任语言 (WS-Trust) 规范通过提供用于请求和发出安全性令牌以及管理 Web Service 请求者与提供者之间的信任关系的框架来扩展 WS-Security。 对 SOAP 消息认证的此扩展使 Web Service 能够使用可信第三方来验证和交换不同类型的安全性令牌。 此第三方称为 安全性令牌服务 (STS)。 有关 WS-Trust 的更多信息,请参阅网络服务信任语言规范

CICS 不支持 WS-Policy。 可以在 WSDL 中使用 WS-Policy 来指定安全性约束,但 CICS会忽略这些规范。 CICS 使用管道配置文件来指定安全处理程序。 有关更多信息,请参阅 为 Web Service 安全性配置管道。 CICS 仅支持 WS-Security 1.0 和 WS-Trust 1.2 规范。

SOAP 消息安全性提供的功能

图 1 显示了如何使用安全性数据扩展 SOAP 消息,这些安全性数据用于认证服务请求者并在消息在请求者与 CICS Web Service 提供程序之间传递时保护该消息。 通过使用 CICS 安全处理程序 或使用 信任客户机接口来配置 SOAP 消息安全性。 CICS 安全处理程序和 WS-Sec 消息头都在使用 WS-Security。
图 1。 CICS 如何支持 SOAP 消息安全性
此图显示了对 SOAP 消息安全性的 CICS 支持。 WS-Security 为认证,消息完整性和消息机密性提供安全性令牌,数字签名和加密。 在 CICS中,使用管道配置文件配置 CICS 安全性处理程序,该文件可以选择与安全性令牌服务 (STS) 交互。 此外,或者可以将定制消息处理程序配置为通过信任客户机接口直接与 STS 进行交互。 有关每个组件的详细信息在以下文本中进行说明。
CICS 中的 SOAP 消息安全性为您提供了以下用于认证和消息保护的选项:
  • 用于从入站消息 (CICS Web Service 提供程序) 派生用户标识或将安全性令牌连接到出站消息 (CICS Web Service 请求者) 的认证机制,包括:
    • 基本认证 (仅适用于 Web Service 提供者)
    • X.509 证书
    • ICRX 身份令牌 (仅限 Web Service 提供者)
    • 身份断言
    • 使用可信第三方 (安全性令牌服务) 的操作
    更多信息,请参阅如何工作: CICS 的身份验证与 SOAP 消息安全性
  • 对于消息完整性,将对入站消息签名进行签名验证,并为出站消息上的 SOAP 主体生成签名。 更多信息,请参阅如何工作:签署 SOAP 消息.
  • 对于消息机密性,对入站消息中的加密数据进行解密,并对出站消息上的 SOAP 主体内容进行加密。 更多信息,请参阅如何工作:SOAP 消息加密
  • 您可以选择对 SOAP 消息进行签名和加密,以提供消息完整性和机密性。 CICS 始终首先对 SOAP 消息体进行签名,然后对其进行加密。
注: Web Service 安全性可能不符合 SP800-131A。 网络服务安全是通过在管道中添加安全处理程序来配置的, CICS 无法控制用户编写的处理程序中的处理过程。 如果使用数字签名,那么只能指定算法 dsa-sha1rsa-sha1。 这些算法不符合 SP800-131A-conformant。 可用于加密 SOAP 主体的双密钥三重 DES 加密算法也不符合要求。

SOAP 消息安全性的组件

CICS 安全处理程序

要在 CICS 中为 Web Service 提供程序或 Web Service 请求者实现 WS-Security ,请在管道配置文件中配置安全处理程序。 CICS 提供了一个安全处理程序来涵盖最常见的场景。 有关使用 CICS 安全处理程序的更多信息,请参阅 为 Web Service 安全性配置管道

要使用您自己的安全过程和处理,您可以编写定制安全处理程序来处理安全 SOAP 消息。 有关编写您自己的安全处理程序的信息,请参阅 编写定制安全处理程序

除了 CICS 安全处理程序外, CICS 还提供了信任客户机接口,以便您可以在不使用 CICS 安全处理程序的情况下与安全性令牌服务 (STS) 进行交互。 有关使用此接口的信息,请参阅 从消息处理程序调用信任客户机

安全性令牌服务 (Security Token Service, STS)

STS 是充当可信第三方的 Web Service ,以代理 Web Service 请求者与 Web Service 提供者之间的信任关系,从而允许来自不同信任域的 Web Service 成功通信。 与 TLS 握手中的认证中心一样, STS 保证服务请求者和服务提供者可以信任消息中提供的凭证。 通过交换安全性令牌来表示信任。 STS 可以发布,交换和验证这些安全性令牌,并在此过程中在不同信任域之间建立信任关系。

STS 使 CICS 能够接受和发送消息头中具有不受 CICS 安全性处理程序直接支持的安全性令牌的消息; 例如, LTPA 和 Kerberos 令牌。 可以将 CICS 配置为 SAML 断言的安全性令牌服务。 有关使用 SAML 断言的信息,请参阅 为 SAML 配置 CICS

CICS 充当信任客户机。 CICS 安全处理程序使用管道配置文件中的信息向 STS 发送 Web Service 请求。

在服务提供者管道中,根据您配置安全处理程序的方式,可以将发送到 STS 的请求用于以下两种情况之一:
  • 验证入站消息的 WS-Security 消息头中的安全性令牌。
  • 将 WS-Security 消息头中的安全性令牌交换为 CICS 可理解的安全性令牌。

在服务请求者管道中,请求只能是一件事: 将安全性令牌交换为不同类型的令牌。 管道配置文件定义 STS 向安全处理程序发放的令牌类型。

安全处理程序动态创建管道以将 Web Service 请求发送到 STS。 此管道一直存在,直到从 STS 接收到响应之后才会将其删除。 如果请求成功,那么 STS 将返回身份令牌或令牌有效性的状态。 安全处理器会将从令牌导出的 RACF® ID 放入 DFHWS-USERID 容器。 如果 STS 迂到错误,那么会向安全处理程序返回 SOAP 故障。 然后,安全处理程序将故障通过管道传递回 Web Service 请求者。

有关使用 STS 的更多信息,请参阅 为 Web Service 安全性配置管道

信任客户机接口

信任客户机接口使您能够直接与安全性令牌服务 (STS) 交互,而不是使用 CICS 安全性处理程序。 使用 STS 提供比 CICS 安全处理程序提供的处理更高级的令牌处理: 例如,您可以启用特定处理以处理入站消息头中的许多令牌或交换出站消息的多种令牌类型。 通过使用此接口,可以创建定制消息处理程序以将您自己的 Web Service 请求发送到 STS。

您可以在不启用服务提供者和服务请求者管道中的 CICS 安全处理程序的情况下使用信任客户机接口,也可以使用信任客户机接口以及 CICS 安全处理程序。

信任客户机接口是对 CICS提供的程序 DFHPIRT 的增强。 此程序通常用于在未使用 CICS Web Service 助手部署 Web Service 请求者应用程序时启动管道。 但它也可以充当 STS 的信任客户机接口。

您可以通过从消息处理程序或头处理程序链接到 DFHPIRT ,传递名为 DFHWSTC-V1 的通道和一组安全容器来调用信任客户机接口,如 安全容器中所述。 通过使用这些容器,您可以从 STS 请求验证或发出操作,选择要交换的令牌类型,并从消息头传递相应的令牌。 DFHPIRT 动态创建管道,从安全容器组成 Web Service 请求,并将其发送到 STS。

DFHPIRT 等待来自 STS 的响应,并将此响应传递回 DFHWS-RESTOKEN 容器 中的消息处理程序。 如果 STS 迂到错误,那么将返回 SOAP 故障。 DFHPIRT 将故障放在 DFHWS-STSfault 容器 中,并返回到管道中的链接程序。

有关直接与 STS 交互的更多信息,请参阅 从消息处理程序调用信任客户机