第四十六章 创建和添加 SAML 令牌 - SubjectConfirmation 使用方法 Holder-of-key
第四十六章 创建和添加 SAML 令牌 - <SubjectConfirmation> 使用方法 Holder-of-key
添加<Subject>元素
要将 <Subject> 元素添加到 %SAML.Assertion 实例,执行以下操作:
- 创建
%SAML.Subject的新实例。 - 根据需要设置主题的属性。
- 将断言对象的
Subject属性设置为等于此实例。
添加 <SubjectConfirmation> 元素
要将 <SubjectConfirmation> 元素添加到的 %SAML.Assertion 实例,请使用以下某个小节中的步骤。
<SubjectConfirmation>使用方法 Holder-of-key
要使用 Holder-of-key 方法添加 <SubjectConfirmation>,请执行以下操作:
- 按照以编程方式检索凭证集中所述,创建
%SYS.X509Credentials的实例。
或者使用与签署断言时使用的相同凭证集。
- 可以选择创建并添加包含与给定凭据集关联的证书的二进制安全令牌。
要创建令牌,调用 %SOAP.Security.BinarySecurityToken 的 CreateX509Token() 类方法。例如:
set bst=##class(%SOAP.Security.BinarySecurityToken).CreateX509Token(credset)
其中 credset 是在上一步中创建的凭证集。
要将此令牌添加到 WS-Security 标头元素,请调用 Web 客户端或 Web 服务的 SecurityOut 属性的 AddSecurityElement() 方法。对于方法参数,请使用刚刚创建的令牌。
- 调用
SAML断言对象的Subject属性的AddX509Confirmation()方法。
method AddX509Confirmation(credentials As %SYS.X509Credentials,
referenceOption As %Integer) as %Status
对于凭证,请使用二进制安全令牌或凭证集。在前一种情况下,请勿指定referenceOption。在后一种情况下,请指定 X.509 凭证的引用选项中所述的值。
<SubjectConfirmation>元素基于 X.509 KeyInfo 元素。
<SubjectConfirmation> 使用方法 Sender-vouches
要使用 Sender-vouches 方法添加 <SubjectConfirmation> ,请执行以下操作:
- 设置
SAML断言对象的Subject属性的NameID属性。 - 调用
SAML断言对象的Subject属性的AddConfirmation()方法。
method AddConfirmation(method As %String) as %Status
对于方法,指定 $$$SAMLSenderVouches、$$$SAMLHolderOfKey 或 $$$SAMLBearer。
在这种情况下,请务必签署 SAML 断言以保护它。