美文网首页
第十章 创建和使用策略 - 在运行时添加证书

第十章 创建和使用策略 - 在运行时添加证书

作者: Cache技术分享 | 来源:发表于2024-08-28 09:04 被阅读0次

    第十章 创建和使用策略 - 在运行时添加证书

    在运行时添加证书

    如果 Web 服务或客户端必须以编程方式选择并包含证书,请使用以下过程:

    1. 检索 %SYS.X509Credentials 的实例,如以编程方式检索凭据集中所述。

    例如:

     set credset=##class(%SYS.X509Credentials).GetByAlias(alias,password)
    

     set credset=..SecurityIn.Signature.X509Credentials 
    
    1. 创建 %SOAP.Security.BinarySecurityToken 实例,其中包含来自该凭证集的证书。例如:
     set bst=##class(%SOAP.Security.BinarySecurityToken).CreateX509Token(credset)
    

    其中 credentials 是在上一步中检索到的凭证集。

    这将返回一个代表 <BinarySecurityToken> 元素的对象,该元素以序列化的 base-64 编码形式携带证书。

    1. 调用Web 客户端或 Web 服务的 SecurityOut 属性的 AddSecurityElement() 方法。对于方法参数,请使用之前创建的二进制安全令牌。例如:
     do ..SecurityOut.AddSecurityElement(bst)
    

    重要提示:在某些情况下,需要两个二进制安全令牌:一个用于加密,一个用于签名。请确保按适当的顺序添加它们。如果策略先加密消息然后对其进行签名,请确保先添加用于加密的二进制安全令牌,然后再添加用于签名的令牌。相反,如果策略先签名然后加密,则第一个二进制安全令牌必须是用于签名的令牌。

    下面显示了 Web 服务中的 Web 方法的示例:

     //get credentials
     set x509alias = "something"
     set pwd = "password"
     set credset = ##class(%SYS.X509Credentials).GetByAlias(x509alias,pwd)
    
     //get certificate and add it as binary security token
     set cert = ##class(%SOAP.Security.BinarySecurityToken).CreateX509Token(credset)
     do ..SecurityOut.AddSecurityElement(cert)
    

    对于 Web 客户端,代码会略有不同,因为通常不会编辑代理客户端:

     set client=##class(proxyclient.classname).%New()
     //get credentials
     set x509alias = "something"
     set pwd = "password"
     set credset = ##class(%SYS.X509Credentials).GetByAlias(x509alias,pwd)
    
     //get certificate and add it as binary security token
     set cert = ##class(%SOAP.Security.BinarySecurityToken).CreateX509Token(credset)
     do client.SecurityOut.AddSecurityElement(cert)
     //invoke web method of client
    

    相关文章

      网友评论

          本文标题:第十章 创建和使用策略 - 在运行时添加证书

          本文链接:https://www.haomeiwen.com/subject/toxtljtx.html