如果要使用自己的安全过程和处理,可以编写定制消息处理程序来处理管道中的安全 SOAP 消息。
开始之前
您需要确定安全处理程序必须支持的安全性级别,并确保在消息包含不受支持的安全性时返回相应的 SOAP 故障。
关于此任务
消息处理程序还必须能够处理入站和出站消息的安全性。
过程
- 使用 EXEC CICS GET CONTAINER 命令检索 DFHREQUEST 或 DFHRESPONSE 容器。
- 解析 XML 以查找 WS-Security 消息头中的安全性令牌。
头以 <wsse:Security> 元素开头。 安全性令牌可以是用户名和密码,数字证书或加密密钥。 一条消息可以在安全性头中具有许多令牌,因此您的处理程序需要标识要处理的正确令牌。
- 根据消息中实现的安全性,执行相应的处理。
- 如果要对 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® 中定义安全处理程序,并更新管道配置文件,确保将其正确放入 XML 中。 在服务请求者管道配置文件中,必须将安全处理程序配置为在管道结束时运行。 在服务提供者管道配置文件中,必须将安全处理程序配置为在管道开始时运行。