メッセージセキュリティを備えたWCF Webサービスがあり、Metro(WSIT + jaxws)を使用するプロジェクトでNetbeansで作成されたJava Webアプリケーションからそれを使用しています。標準のalgorithmSuite Basic256を使用するとすべて正常に動作しますが、サービスの要件であるBasic256Sha256を使用すると、「SOAPFaultException:メッセージのセキュリティを検証中にエラーが発生しました。」という実行時エラーが発生します。サービス ログを見ると、「アルゴリズム ' http://www.w3.org/2000/09/xmldsig#hmac-sha1 ' は、アルゴリズム スイート Basic256Sha256 による操作 'SymmetricSignature' に対して受け入れられません。」 と表示されます。問題は、SHA2 (Sha256) を使用するようにクライアントを変更する方法です。クライアント資格情報の種類として Certificate を使用しています。
WCF バインディング:
<!-- MESSAGE SECURITY -->
<binding name="myMessageBinding">
<transactionFlow />
<security defaultAlgorithmSuite="Basic256Sha256"
authenticationMode="SecureConversation"
messageSecurityVersion="WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10">
<secureConversationBootstrap defaultAlgorithmSuite="Basic256Sha256"
authenticationMode="MutualCertificate" requireDerivedKeys="false"
messageSecurityVersion="WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10"
requireSignatureConfirmation="true" />
</security>
<textMessageEncoding />
<httpTransport />
</binding>