第七章 设置和其他常见活动 - 从入站消息中检索证书
从入站消息中检索证书
如果收到已进行数字签名的 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
。
网友评论