2012-09-21 52 views
2

我正在爲使用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

回答

1

事實證明,通過改變messageSecurityVersion到:

WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10

已經解決了這個問題,我現在可以在返回過程中的安全性令牌

+0

我有同樣的問題,但事實並非如此爲我工作:( – Gico