文章
· 九月 23 阅读大约需 2 分钟

第三十一章 使用派生密钥令牌进行加密和签名 - 变体:创建隐式 DerivedKeyToken

第三十一章 使用派生密钥令牌进行加密和签名 - 变体:创建隐式

变体:创建隐式 <DerivedKeyToken>

还可以创建隐式 <DerivedKeyToken>,这是引用 <DerivedKeyToken> 的快捷方法。在此方法中:

  • 消息中不包含 <DerivedKeyToken>
  • 在使用 <DerivedKeyToken> 的元素中,<SecurityTokenReference> 元素指定 Nonce 属性,该属性包含用于 <DerivedKeyToken>nonce 值。这向消息接收者表明派生密钥令牌是隐含的,并且是从引用的令牌派生的。

要创建隐式 <DerivedKeyToken>,请使用前面描述的一般过程,但有两处更改:

  1. 对于派生的密钥令牌实例,将 Implied 属性设置为 1
 set dkt.Implied=1
  1. 请勿将 <DerivedKeyToken> 元素添加到 WS-Security 标头元素。

使用 <DerivedKeyToken> 的方式与将其包含在消息中的方式完全相同。

变体:引用 <EncryptedKey>SHA1 哈希

在此变体中(仅适用于 Web 服务),发送者不在消息中包含 <EncryptedKey> 元素,而是引用密钥的 SHA1 哈希。Web 服务可以引用在入站消息中收到的 <EncryptedKey> 元素。

使用前面的一般程序,但需做以下更改:

  • 步骤 2-4 是可选的。.
  • 省略步骤 5(不要添加 <EncryptedKey>)。
  • 在步骤 6 中,当您使用 Create() 创建派生密钥令牌时,若要使用从客户端收到的 <EncryptedKey>,请省略第一个参数。或者,如果您已创建 <EncryptedKey>,请将其用作第一个参数。

指定 $$$SOAPWSReferenceEncryptedKeySHA1 作为第二个参数。

例如,要使用从 Web 客户端收到的消息中的第一个 <EncryptedKey> 元素:

 set refopt=$$$SOAPWSReferenceEncryptedKeySHA1
 set dkenc=##class(%SOAP.WSSC.DerivedKeyToken).Create(,refopt)
讨论 (0)1
登录或注册以继续