I try to use the IBM DataPower 3.7.1.x web service in WCF, getting the following error message:
Cannot find token authenticator for token type 'System.IdentityModel.Tokens.X509SecurityToken'. Tokens of this type cannot be accepted in accordance with the current security settings.
The HTTP response is returned as 200, and I can see the correct SOAP response when debugging in Fiddler.
However, WCF clients do not seem to know how to handle the BinarySecurityToken element in a SOAP response.
Here is my WCF configuration:
<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>
I saw other people reporting similar issues for both Microsoft and IBM, and there are some StackOverflow questions about this, however I have not found a single solution that works.
Any help would be appreciated.
source share