第三十一章 使用派生密钥令牌进行加密和签名 - 变体:创建隐式 DerivedKeyToken
第三十一章 使用派生密钥令牌进行加密和签名 - 变体:创建隐式 <DerivedKeyToken>
变体:创建隐式 <DerivedKeyToken>
还可以创建隐式 <DerivedKeyToken>,这是引用 <DerivedKeyToken> 的快捷方法。在此方法中:
- 消息中不包含
<DerivedKeyToken> - 在使用
<DerivedKeyToken>的元素中,<SecurityTokenReference>元素指定Nonce属性,该属性包含用于<DerivedKeyToken>的nonce值。这向消息接收者表明派生密钥令牌是隐含的,并且是从引用的令牌派生的。
要创建隐式 <DerivedKeyToken>,请使用前面描述的一般过程,但有两处更改:
- 对于派生的密钥令牌实例,将
Implied属性设置为1。
set dkt.Implied=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)