编写定制安全性处理程序

要使用您自己的安全过程和处理,请编写定制消息处理程序以处理管道中的安全 SOAP 消息。

您需要确定安全处理程序必须支持的安全性级别,并确保在消息包含不受支持的安全性时返回相应的 SOAP 故障。 消息处理程序还必须能够处理入站和出站消息的安全性。

以下是一组可能的步骤,您的安全处理程序将实现这些步骤:
  1. 使用 EXEC CICS GET CONTAINER 命令检索 DFHREQUEST 或 DFHRESPONSE 容器。
  2. 解析 XML 以查找 WS-Security 消息头中的安全性令牌。 头以 <wsse:Security> 元素开头。 安全性令牌可以是用户名和密码,数字证书或加密密钥。 一条消息可以在安全性头中具有许多令牌,因此您的处理程序需要标识要处理的正确令牌。
  3. 根据消息中实现的安全性,执行相应的处理:
    • 要执行 Kerberos 令牌的基本认证,请发出 EXEC CICS VERIFY TOKEN 命令。 此命令检查提供的 Kerberos 令牌是否有效。 如果该命令成功,请使用 EXEC CICS PUT CONTAINER更新 DFHWS-USERID 容器。 否则,发出 EXEC CICS SOAPFAULT CREATE 命令。
    • 要对密码或密码短语执行基本认证,请发出 EXEC CICS VERIFY PHRASE 命令。 此命令检查消息的安全性头中的用户名和密码。 如果该命令成功,请使用 EXEC CICS PUT CONTAINER更新 DFHWS-USERID 容器。 否则,发出 EXEC CICS SOAPFAULT CREATE 命令。
    • 您可能还想在每次请求服务时写入审计记录,例如,您可以在 CICS® 用户日志中写入一条信息。
    • 要通过与安全性令牌服务交换或验证一系列令牌来执行高级认证,请使用允许您直接与 STS 交互的信任客户机接口。 请参阅 从消息处理程序调用信任客户机 以获取详细信息。
    • 如果对消息进行了签名,请验证数字证书的凭证。
    • 如果消息部分已加密,请使用安全性头中的信息对消息进行解密。 CICS 如何符合 Web Service 安全性规范 规范提供了有关如何执行此操作的信息
  4. 在 CICS 中定义你的安全处理程序,并更新管道配置文件,确保将其正确放入 XML 中。 在服务请求者管道配置文件中,必须将安全处理程序配置为在管道结束时运行。 在服务提供者管道配置文件中,必须将安全处理程序配置为在管道开始时运行。

有关定制消息处理程序的示例,请参阅 IBM Redbooks: 实现 CICS Web Service