【问题标题】:WCF Client Verifying BinarySecurityToken in responseWCF 客户端验证 BinarySecurityToken 作为响应
【发布时间】:2012-10-12 21:21:52
【问题描述】:

我正在为使用 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 来验证响应的签名,甚至如何配置客户端以接受“该类型的令牌”的任何信息

提前感谢您的任何帮助或建议,

菲尔半

【问题讨论】:

    标签: wcf-security wcf-client digital-signature x509


    【解决方案1】:

    事实证明,通过将 messageSecurityVersion 更改为:

    WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10

    已解决问题,我现在可以处理返回的安全令牌

    【讨论】:

    • 我有同样的问题,但它对我不起作用:(
    猜你喜欢
    • 1970-01-01
    • 2011-04-09
    • 2013-10-07
    • 1970-01-01
    • 2018-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多