none
Soap Envelope: timestamp + подпись RRS feed

  • Общие обсуждения

  • посдскажите пожалуйста, как на клиенте (лучше с помощью WCF) можно создать цифровую подпись на основе X.509 сертификата.

    Кроме подписи Envelope должен содержать Timestamp.
    Подпись должна охватывать Timestamp и Body.
    Результат должен быть согласно примера ниже.
    Порядок следования элементов - тоже.
    Лучше всего программно, без конфигурационного файла...

    Ожидаемый результат:

    <soapenv:Envelope 
      xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
      xmlns:abc="http://tempuri.test.com/abc" 
      xmlns:def1="http://tempuri.test.com/qwer/rewq/T201401" 
      xmlns:def2="http://tempuri.test.com/qwer/rewq/T201404">
      <soapenv:Header>
        <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
          <wsse:BinarySecurityToken 
            xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" 
            EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" 
            ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" 
            wsu:Id="CertId-12345....">
            MI..................
          </wsse:BinarySecurityToken>
          <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="Signature-5">
            <ds:SignedInfo>
              <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
              <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
              <ds:Reference URI="#id-6">
                <ds:Transforms>
                  <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
                </ds:Transforms>
                <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
                <ds:DigestValue>WW.........</ds:DigestValue>
              </ds:Reference>
              <ds:Reference URI="#Timestamp-4">
                <ds:Transforms>
                  <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
                </ds:Transforms>
                <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
                <ds:DigestValue>6V...........</ds:DigestValue>
              </ds:Reference>
            </ds:SignedInfo>
            <ds:SignatureValue>pc5d...........</ds:SignatureValue>
            <ds:KeyInfo Id="KeyId-12345.......">
              <wsse:SecurityTokenReference 
                xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" 
                wsu:Id="STRId-12345........">
                <wsse:Reference URI="#CertId-12345........." ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/>
              </wsse:SecurityTokenReference>
            </ds:KeyInfo>
          </ds:Signature>
          <wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Timestamp-4">
            <wsu:Created>2014-08-20T10:03:48Z</wsu:Created>
            <wsu:Expires>2014-08-20T10:08:48Z</wsu:Expires>
          </wsu:Timestamp>
        </wsse:Security>
      </soapenv:Header>
      <soapenv:Body xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="id-6">
        <........>
      </soapenv:Body>
    </soapenv:Envelope>

    16 июня 2014 г. 7:47