文章
· 十月 11 阅读大约需 2 分钟

第四十五章 创建和添加 SAML 令牌 - 变体:不使用 BinarySecurityToken

第四十五章 创建和添加 SAML 令牌 - 变体:不使用

变体:不使用 <BinarySecurityToken>

<BinarySecurityToken> 包含序列化、base-64 编码格式的证书。可以忽略此令牌,而改用标识证书的信息;接收方使用此信息从相应位置检索证书。为此,请使用上述步骤,并进行以下更改:

  • 跳过步骤 23。也就是说,不要创建和添加 <BinarySecurityToken>.。
  • 在步骤 4 中,使用凭证集(而不是二进制安全令牌)作为 CreateX509() 的第一个参数。例如:
 set assertion=##class(%SAML.Assertion).CreateX509(credset,referenceOption)

对于 referenceOption,可选择指定一个值,如 X.509 凭证的参考选项中所述。可以使用除 $$$SOAPWSReferenceDirect 之外的任意值。

如果指定凭证集作为第一个参数(正如我们在这个变体中所做的那样),则默认引用选项是证书的指纹。

变体:创建未签名的 SAML 断言

要创建未签名的 SAML 断言,请使用上述步骤,并进行以下更改:
- 跳过步骤 123。也就是说,不要创建和添加 <BinarySecurityToken>.。
- 对于步骤 4,请使用 Create() 方法而不是 CreateX509()。此方法不带参数。例如:

 set assertion=##class(%SAML.Assertion).Create()

此方法返回 %SAML.Assertion的一个实例。 IRIS 会自动设置此实例的 SAMLIDVersion 属性。Signature 属性为空。

添加 SAML 语句

要将 SAML 语句添加到 %SAML.Assertion 实例,请执行以下操作:

  1. 创建适当语句类的一个或多个实例:
  • %SAML.AttributeStatement

  • %SAML.AuthnStatement

  • %SAML.AuthzDecisionStatement

  1. 根据需要指定这些实例的属性。

对于 %SAML.AttributeStatementAttribute属性是 %SAML.Attribute%SAML.EncryptedAttribute 的实例。

%SAML.Attribute 在其 AttributeValue 属性中带有属性值,该属性值是的 %SAML.AttributeValue实例的列表。

要在实例中向 %SAML.Attribute添加属性值:

a. 创建 %SAML.AttributeValue 的实例。

b. 使用 %SAML.AttributeValue的方法在中将属性指定为 XML、字符串或单个子元素。

c. 创建一个包含这些属性值实例的列表。

d. 将属性对象的 AttributeValue 属性设置为等于此列表。

或者直接指定 AttributeValueOverride 属性。对于值,使用值所需的精确字符串(XML 混合内容字符串)。

  1. 创建一个包含这些语句实例的列表。
  2. 将断言对象的 Statement 属性设置为等于此列表。
讨论 (0)1
登录或注册以继续