私は、SSLトランスポート、相互認証、およびデジタル署名を使用するサードパーティのSOAPサービス(Javaバックエンド上で)用のWCFクライアントを作成しています。
SSL経由で接続を確立し、関連するクライアント証明書を使用してリクエストに正しく署名しています。リクエストは正常に処理され、サードパーティは私が送信しているメッセージの有効性を確認しました。
ただし、サービスからの応答を受け取ったときに問題が発生します。応答には、署名されたタイムスタンプと本文が返されます。タイプhttp://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3の参照フィールドを持つBinarySecurityTokenとSecurityTokenReferenceがあります
現在、クライアントから次の例外が発生しています。
発生した例外:System.ServiceModel.Security.MessageSecurityException:「System.IdentityModel.Tokens.X509SecurityToken」トークンタイプのトークンオーセンティケーターが見つかりません。そのタイプのトークンは、現在のセキュリティ設定に従って受け入れることができません。
現在、次のように構成されたcustomBindingを使用しています。
<customBinding>
<binding name="Custom">
<security
defaultAlgorithmSuite="Basic256Rsa15"
allowSerializedSigningTokenOnReply="true"
authenticationMode="CertificateOverTransport"
securityHeaderLayout="Strict"
messageSecurityVersion="WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10">
<secureConversationBootstrap />
</security>
<textMessageEncoding messageVersion="Soap11" />
<httpsTransport requireClientCertificate="true" />
</binding>
</customBinding>
このBinarySecurityTokenを使用して応答の署名を確認する方法や、「そのタイプのトークン」を受け入れるようにクライアントを構成する方法についての情報が見つかりません。
ヘルプや提案を事前に感謝します、
PhilHalf