第三十一章 使用派生密钥令牌进行加密和签名 - 变体:创建隐式 <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)
网友评论