WCF で IBM DataPower 3.7.1.x Web サービスを使用しようとすると、次のエラー メッセージが表示されます。
「System.IdentityModel.Tokens.X509SecurityToken」トークン タイプのトークン認証子が見つかりません。そのタイプのトークンは、現在のセキュリティ設定に従って受け入れることができません。
HTTP 応答が 200 として戻ってきており、Fiddler でデバッグしているときに正しい SOAP 応答を確認できます。
ただし、WCF クライアントは、SOAP 応答で BinarySecurityToken 要素を処理する方法を認識していないようです。
これが私の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 の質問がありますが、機能する解決策は 1 つも見つかりませんでした。
どんな助けでも大歓迎です。