第七章 设置和其他常见活动 - 从入站消息中检索证书
第七章 设置和其他常见活动 - 从入站消息中检索证书
从入站消息中检索证书
如果收到已进行数字签名的 SOAP 消息,则相关证书可在 %SYS.X509Credentials 的实例中找到。可以检索该证书。操作方法如下:
- 首先通过
Web服务或Web客户端的SecurityIn属性访问WS-Security标头元素。这将返回%SOAP.Security.Header的实例。 - 然后执行以下操作之一:
- 在实例中访问
%SOAP.Security.Header的Signature属性,该属性引用安全标头元素中的第一个<Signature>元素。 - 在实例中使用
%SOAP.Security.Header的FindElement()方法访问实例中%SOAP.Security.Header的第一个<Signature>元素。
无论哪种情况,结果都是在包含数字签名的 %XML.Security.Signature 实例。
- 访问签名对象的
X509Credentials属性。 - 检查返回对象的类型,看它是否是
%SYS.X509Credentials的实例。
if $CLASSNAME(credset)'="%SYS.X509Credentials" {set credset=""}
如果入站消息包含已签名的 SAML 断言,则 X509Credentials 属性是某个其他类的实例,不能用于访问实例中的 %SYS.X509Credentials。
示例:
set credset=..SecurityIn.Signature.X509Credentials
if $CLASSNAME(credset)'="%SYS.X509Credentials" {set credset=""}
//if credset is not null, then use it...
指定客户端要使用的 SSL/TLS 配置
如果 Web 服务需要使用 HTTP over SSL/TLS(HTTPS),则 Web 客户端必须使用适当的 IRIS SSL/TLS 配置。
当手动创建 WS-Security 标头时,必须以编程方式指定要使用的配置。
要指定要使用的 SSL/TLS 配置,请将 Web 客户端的 SSLConfiguration 属性设置为 SSL/TLS 配置名称。例如:
set client=##class(proxyclient.classname).%New()
set client.SSLConfiguration="mysslconfig"
//invoke web method of client
请注意,如果客户端通过代理服务器连接,还必须在 Web 客户端中将 HttpProxySSLConnect 属性设置为 1。