Мне нужно позвонить в бэкэнд-службу, защищенную с помощью signonly, это услуга сторонней организации.
Сертификат, который мне присылают, это V1, и когда я использовал его с SOAPUI или java-клиентом, он работал нормально ... XML-запрос содержит эту часть:
<wsse:SecurityTokenReference wsu:Id="STR-E79369ED26AA07A72315362651483883">
<ds:X509Data>
<ds:X509IssuerSerial>
<ds:X509IssuerName>CN=2323434,OU=test,O=test,L=test,ST=test,C=CU</ds:X509IssuerName>
<ds:X509SerialNumber>11718339280033114430</ds:X509SerialNumber>
</ds:X509IssuerSerial>
</ds:X509Data>
</wsse:SecurityTokenReference>
И я могу получить успешный ответ.
Но если я использую EI WSO2 с конечной точкой с политикой входа в систему с этим InitiatorToken:
<sp:InitiatorToken>
<wsp:Policy>
<sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never">
<wsp:Policy>
<sp:WssX509V3Token10/>
<sp:RequireIssuerSerialReference/>
</wsp:Policy>
</sp:X509Token>
</wsp:Policy>
</sp:InitiatorToken>
Я получаю эту ошибку:
An unsupported token was provided (An X509 certificate with version 3 must be used for SKI. The presented cert has version: 1)
Если я заменил сертификат на другой, кроме V3, я смогу увидеть запрос с тегом ds: X509IssuerSerial , но с ошибками в ответе из-за сбоя проверки подписи на стороне сервера.
Есть идеи, как решить эту проблему?