2016-04-01 3 views
1

Ich konnte den ersten ACA-Webservice erfolgreich aufrufen und dachte mir, dass es ein Kinderspiel wäre, den Status zu erhalten. Bo-o-oy, wie ich falsch lag!"WS Security Header in der Nachricht erhalten ist ungültig." beim Aufruf von ACAGetTransmitBulkRequestStatus

Ich habe die gleichen Einstellungen für den Status-Service verwendet, wie ich für die Eins ... und ich habe "WS Security Header ist ein ungültiger Fehler!" Was gibt?!?! Der Code für die Signaturgenerierung ist der gleiche wie für die Einreichung! Ich würde mich freuen, wenn jemand in der Lage wäre, etwas Licht zu geben, was hier möglicherweise falsch ist? Ich bin mir bewusst, dass folgende Tags sollten digital signiert werden (und kann ich sie unterzeichnet):

  1. ACABusinessHeader
  2. ACABulkRequestTransmitterStatusDetailRequest
  3. Sicherheit Zeitstempel

Hier ist meine Anfrage:

POST https://la.www4.irs.gov/airp/aca/a2a/1095BC_Status_Request_AATS2016 HTTP/1.1 
Content-Type: text/xml; charset=utf-8 
SOAPAction: "RequestSubmissionStatusDetail" 
Host: la.www4.irs.gov 
Content-Length: 5217 
Expect: 100-continue 
Accept-Encoding: gzip, deflate 
Connection: Keep-Alive 

<s:Envelope xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
<s:Header> 
    <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> 
     <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> 
      <SignedInfo> 
       <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments" /> 
       <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> 
       <Reference URI="#_1"> 
        <Transforms> 
         <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> 
        </Transforms> 
        <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> 
        <DigestValue>KBLc15A=</DigestValue> 
       </Reference> 
       <Reference URI="#_2"> 
        <Transforms> 
         <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> 
        </Transforms> 
        <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> 
        <DigestValue>dhkLQhzfkc=</DigestValue> 
       </Reference> 
       <Reference URI="#TS-ccf5abbbd36940f693d56b21ab489674"> 
        <Transforms> 
         <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> 
        </Transforms> 
        <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> 
        <DigestValue>O179zVlJnyo=</DigestValue> 
       </Reference> 
      </SignedInfo> 
      <SignatureValue>REDUCTED</SignatureValue> 
      <KeyInfo> 
       <wsse:SecurityTokenReference xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> 
        <wsse:KeyIdentifier ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">-- Base64ed cert ---</wsse:KeyIdentifier> 
       </wsse:SecurityTokenReference> 
      </KeyInfo> 
     </Signature> 
     <u:Timestamp u:Id="TS-ccf5abbbd36940f693d56b21ab489674"> 
      <u:Created>2016-04-01T15:02:00.505Z</u:Created> 
      <u:Expires>2016-04-01T15:12:00.506Z</u:Expires> 
     </u:Timestamp> 
    </wsse:Security> 
    <abh:ACABusinessHeader u:Id="_1" xmlns:abh="urn:us:gov:treasury:irs:msg:acabusinessheader"> 
     <UniqueTransmissionId xmlns="urn:us:gov:treasury:irs:ext:aca:air:7.0">REDUCTED</UniqueTransmissionId> 
     <Timestamp xmlns="urn:us:gov:treasury:irs:common">2016-04-01T11:02:58Z</Timestamp> 
    </abh:ACABusinessHeader> 
</s:Header> 
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <ACABulkRequestTransmitterStatusDetailRequest u:Id="_2" version="1.0" xmlns="urn:us:gov:treasury:irs:msg:irstransmitterstatusrequest"> 
     <ACABulkReqTrnsmtStsReqGrpDtl xmlns="urn:us:gov:treasury:irs:ext:aca:air:7.0"> 
      <ReceiptId xmlns="urn:us:gov:treasury:irs:common">Receit Id</ReceiptId> 
     </ACABulkReqTrnsmtStsReqGrpDtl> 
    </ACABulkRequestTransmitterStatusDetailRequest> 
</s:Body> 

UPDATE1: Ich bin mehr und mehr davon überzeugt, dass mit unserem Zertifikats- und Status-Service etwas am Ende ist. Es sieht so aus, als könnten sie die Empfangs-ID nicht dem richtigen Zertifikat zuordnen. Zumindest stimmten sie überein, dass strukturell nichts falsch mit dem XML ist, das ich ihnen geschickt habe. Aber sie konnten das eigentliche Problem nicht identifizieren. IRS bat mich, ihnen meine Anfrage in der E-Mail erneut zur weiteren Untersuchung vorzulegen, was ich tat. Jetzt wird warten und c was passieren wird.

+0

Wie generieren Sie die XML? Ich konnte meine Lösung nur mit dem IRS arbeiten lassen, indem ich meinen SOAP-Umschlag und die Header manuell manuell erstellte, außer dass das Security-Element größtenteils von der SignedXml-Klasse generiert wurde. – Bon

+0

@Bon Vielen Dank für die Antwort! Ich manuell Signatur mit SignedXml Klasse erstellen. Ich denke, in dieser Abteilung sind wir im selben Boot. Was ich nicht verstehe, warum das, was für submit-Dienst funktioniert, nicht für Status eins funktioniert? Ich sah, dass Sie es für beide Dienste funktionierten, was war der Unterschied, dass der Statusdienst funktioniert? – fatherOfWine

+0

Ich denke, der einzige Unterschied für mich war die Unterzeichnung der verschiedenen Elemente wie in ihrem pdf angegeben. – Bon

Antwort

1

Nun, lange Geschichte kurz. Der Statusdienst funktioniert jetzt. Nach dem Back'n'Forhing entfernte das IRS-Entwicklungsteam die Client-Konfigurationen, die als gelöscht markiert wurden und danach scheint der Status-Service selbst zum Arbeiten motiviert zu sein. Ich bin ein bisschen müde darüber, wie die Situation gelöst wurde, aber wenn es schließlich zu arbeiten begann - lass es sein!

0

(ich habe nicht genug Ruf haben einen Kommentar hinzufügen)

@fatherOfWine, bemerkte ich, dass das InclusiveNamespaces Element in Ihrem Trans Elemente fehlt. Entschuldigung für die Angabe von etwas, das Sie vielleicht bereits wissen, die enthaltenen Namespaces sind in der Kanonisierung der XML und schließlich die Berechnung der SHA1-Digests berücksichtigt.

Senden Sie eine E-Mail an den technischen Support von IRS und bitten Sie sie, sich ihre Logs anzuschauen, wenn die drei Digest-Werte, die Sie senden, ihre Berechnungen bestehen haben. Sie werden in der Lage sein, zumindest zu identifizieren, welche Ihrer Digest-Werte übergeben werden und ihre Prüfungen nicht bestehen. Teilen Sie ihnen die TCC und die Ortszeit mit, an die Sie die Anfrage gesendet haben.

+0

Vielen Dank für Ihre Antwort. AFAIK-Include-Namespaces sind jedoch nur dann notwendig, wenn ihre Definitionen außerhalb des zu signierenden Dokuments liegen. Abgesehen davon funktioniert mein Submit-Service sehr gut und es verwendet denselben Signaturcode, der für die Anfrage, die ich in diese Frage gestellt habe, eine Signatur erzeugt hat. Was gut für die Gans ist, sollte gut für den gander sein, n'es pas? :)) – fatherOfWine

Verwandte Themen