第四十六章 创建和添加 SAML 令牌 - 使用方法 Holder-of-key
添加<Subject>
元素
要将 <Subject>
元素添加到 %SAML.Assertion
实例,执行以下操作:
1. 创建 %SAML.Subject
的新实例。
2. 根据需要设置主题的属性。
3. 将断言对象的 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
断言以保护它。