Problems with IBM DataPower 3.7.1.x with WCF Clients

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.

+4
source share
2 answers

publish the soap you send, the one that returns and your config.

also try adding this attribute:

 <security allowSerializedSigningTokenOnReply="true" /> 

(as described here )

+3
source

How to convert from binding to user binding:

http://webservices20.cloudapp.net/default.aspx

+2
source

Source: https://habr.com/ru/post/1346099/


All Articles