我正在为使用 SSL 传输、相互身份验证和数字签名的第三方 SOAP 服务(我相信在 Java 后端)编写 WCF 客户端。
我已经通过 SSL 建立了连接,并使用相关的客户端证书正确签署了请求。请求成功通过,第三方已确认我发送的消息的有效性。
但是,当我们收到服务的响应时,问题就来了。响应返回带有签名的时间戳和正文。有一个 BinarySecurityToken 和一个 SecurityTokenReference,其 Reference 字段类型为http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3
目前,我从客户端收到以下异常:
遇到异常: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 来验证响应签名的任何信息,甚至找不到有关如何将客户端配置为接受“该类型的令牌”的任何信息
提前感谢您的任何帮助或建议,
菲尔半