WS Security和UsernameToken节点

时间:2017-07-08 07:21:27

标签: soap authorization token soap-client ws-security

我读了https://www.oasis-open.org/committees/download.php/13392/wss-v1.1-spec-pr-UsernameTokenProfile-01.htm,我知道如何生成Nonce和密码。我对UsernameToken wsu:Id有疑问。

  1. wsu:Id属性的值应该是什么。
  2. 可以是默认的随机吗?
  3. 如何生成它?

    <wsse:UsernameToken wsu:Id="UsernameToken-1314D8CB1A76EFB5F614902572284093" xmlns:wsu="http://schemas.xmlsoap.org/ws/2003/06/utility">
    <wsu:Created>2014.02.10T-09:12:00Z</wsu:Created>
    <wsse:Username>Username</wsse:Username>
    <wsse:Nonce EncodingType="UTF-8">KFIy9LgzhmDPNiqU/B9ZiWKXfEVNvFyn6KWYP+1zVt8=</wsse:Nonce>
    <wsse:Password Type="wsse:PasswordDigest">CxWj1OMnYj7dddMnU/DrOhyY3j4</wsse:Password>
    

1 个答案:

答案 0 :(得分:0)

  

wsu:Id属性的值应该是什么。

它可以是随机的字符序列(我注意到它的长度是任意的)。

  

它可以是默认的随机数字吗?

如上所述,肯定是。

  

我如何生成它?

它是随机的,因此请使用任何提供随机字符串的内置函数。例如(C#):

void Deck::addCard(const unique_ptr<Card>& card)
{
    card.print();
}

就我而言,我不仅使用了string usernameTokenId = $"UsernameToken-{Guid.NewGuid().ToString()}"; ,而且还使用了wsu:Id="UsernameToken-...",它仍然可以正常工作。