Получение "Заголовок безопасности WS в сообщении недействителен". при вызове ACAGetTransmitterBulkRequestStatus

Мне удалось сделать успешный звонок на первый веб-сервис ACA, и я подумал, что получить статус будет проще простого. Бо-о-ой, как я ошибся!

Я использовал те же настройки для службы статуса, что и для службы отправки... и получил сообщение "Заголовок WS Security недопустим!" Что дает?!?! Код генерации подписи такой же, как я использовал для отправки! Буду признателен, если кто-нибудь сможет пролить свет на то, что здесь может быть не так? Я знаю, что следующие теги должны иметь цифровую подпись (и я подписал их):

  1. ACABusinessHeader
  2. ACABulkRequestTransmitterStatusDetailRequest
  3. Метка времени безопасности

Вот мой запрос:

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>

ОБНОВЛЕНИЕ1: Я все больше и больше убежден, что что-то не так с нашей службой сертификации и статусом. Похоже, они не могут сопоставить идентификатор квитанции с соответствующим сертификатом. По крайней мере, они подтвердили, что структурно нет ничего плохого в XML, который я им отправлял. Но они не могут определить актуальную проблему. IRS попросил, чтобы я недавно отправил им мой запрос в электронном письме еще раз для дальнейшего расследования, которое я сделал. Теперь буду ждать и c тем, что будет.

2 ответа

Решение

Ну, короче говоря. Статус сервис сейчас работает. В конце концов команда разработчиков IRS back'n'forthing удалила клиентские конфигурации, которые были помечены как удаленные, и после этого, похоже, у службы статуса появился дух для работы. Я немного устал от того, как ситуация разрешилась, но если она в итоге начала работать - пусть будет так!

(У меня недостаточно репутации, чтобы добавить комментарий)

@fatherOfWine, я заметил, что элемент InclusiveNamespaces отсутствует в ваших элементах Transform. Извините за то, что вы, возможно, уже знаете, включенные пространства имен учитываются при канонизации XML и, в конечном итоге, при вычислении дайджестов SHA1.

Отправьте электронное письмо в службу технической поддержки IRS ACA и попросите их просмотреть свои журналы, если три отправленных вами дайджест-значения соответствуют или соответствуют их расчетам. Они смогут по крайней мере определить, какие из ваших значений дайджеста проходят и не проходят свои проверки. Сообщите им TCC и местное время, когда вы отправили запрос.

Другие вопросы по тегам