文章
· 八月 25 阅读大约需 2 分钟

第七章 设置和其他常见活动 - 从入站消息中检索证书

第七章 设置和其他常见活动 - 从入站消息中检索证书

从入站消息中检索证书

如果收到已进行数字签名的 SOAP 消息,则相关证书可在 %SYS.X509Credentials 的实例中找到。可以检索该证书。操作方法如下:

  1. 首先通过 Web 服务或 Web 客户端的 SecurityIn 属性访问 WS-Security 标头元素。这将返回 %SOAP.Security.Header 的实例。
  2. 然后执行以下操作之一:

- 在实例中访问 %SOAP.Security.HeaderSignature 属性,该属性引用安全标头元素中的第一个 <Signature> 元素。
- 在实例中使用 %SOAP.Security.HeaderFindElement() 方法访问实例中 %SOAP.Security.Header的第一个 <Signature> 元素。

无论哪种情况,结果都是在包含数字签名的 %XML.Security.Signature 实例。

  1. 访问签名对象的 X509Credentials 属性。
  2. 检查返回对象的类型,看它是否是 %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

讨论 (0)1
登录或注册以继续