Я пытаюсь использовать веб-службу IBM DataPower 3.7.1.x в WCF, получаю следующее сообщение об ошибке:
Не удается найти средство проверки подлинности токена для типа токена System.IdentityModel.Tokens.X509SecurityToken. Токены этого типа не могут быть приняты в соответствии с текущими настройками безопасности.
Ответ HTTP возвращается как 200, и я вижу правильный ответ SOAP при его отладке в Fiddler.
Однако клиенты WCF, похоже, не знают, как обрабатывать элемент BinarySecurityToken в ответе SOAP.
Вот моя конфигурация WCF:
<bindings>
<basicHttpBinding>
<binding name="TestBinding">
<security mode="TransportWithMessageCredential">
<message clientCredentialType="Certificate" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<behaviors>
<endpointBehaviors>
<behavior name="TestBehavior">
<callbackDebug includeExceptionDetailInFaults="true" />
<clientCredentials>
<clientCertificate storeLocation="LocalMachine"
storeName="My"
x509FindType="FindBySubjectName"
findValue="test-cert" />
<serviceCertificate>
<authentication certificateValidationMode ="PeerOrChainTrust" />
</serviceCertificate>
</clientCredentials>
</behavior>
</endpointBehaviors>
</behaviors>
<client>
<endpoint address="https://serviceURL"
binding="basicHttpBinding"
bindingConfiguration="TestBinding"
behaviorConfiguration="TestBehavior"
contract="ContraceGoesHere"
name="ContraceNameGoesHere" />
</client>
Я видел, как другие люди сообщали об аналогичных проблемах как в Microsoft, так и в IBM, и есть некоторые вопросы по этому поводу StackOverflow, однако я не нашел ни одного работающего решения.
Любая помощь будет оценена по достоинству.