我正在爲使用SSL傳輸,相互身份驗證和數字簽名的第三方SOAP服務(我相信在Java後端)編寫WCF客戶端。WCF客戶端在響應中驗證BinarySecurityToken
我已經通過SSL建立了連接,並使用相關客戶端證書正確簽署請求。請求成功通過,第三方已確認我發送的消息的有效性。
但是,問題出現在我們收到服務響應時。 響應返回帶有簽名的時間戳和正文。
遇到例外情況:System.ServiceModel.Security.MessageSecurityException 有一個的BinarySecurityToken與類型http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3
的參考場目前一個SecurityTokenReference,我從客戶收到以下異常:找不到「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
我有同樣的問題,但事實並非如此爲我工作:( – Gico