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