gpt4 book ai didi

wcf - 如何使用 WCF 签署 X509 token

转载 作者:行者123 更新时间:2023-12-04 12:59:18 25 4
gpt4 key购买 nike

我正在开发一个必须与 Oracle WebLogic 服务对话的 WCF 客户端。该服务强制执行相互证书身份验证。

但是,我们无法满足该策略,并且服务器记录了一条错误消息:

"WSM-00081: The X.509 certificate is not signed."



我一直想知道这到底是什么意思。 Oracle 文档指出:

WSM-00081: The X.509 certificate is not signed.

Cause: The X509 token used was not signed according to requirements of certificate authentication scenario.

Action: Sign the X509 token (depending upon the reference mechanism used) for certificate authentication.

Level: 1

Type: ERROR

Impact: Security



( http://docs.oracle.com/cd/E25054_01/core.1111/e10113/chapter_wsm_messages.htm)

经过一番研究,我们发现我们可以通过设置 is-signed="false 来禁用服务策略配置文件中的检查。 :
<orasp:x509-token orasp:enc-key-ref-mech="direct" orasp:is-encrypted="false"
orasp:is-signed="false"
orasp:rcpt-enc-key-ref-mech="direct"
orasp:rcpt-sign-key-ref-mech="direct"
orasp:sign-key-ref-mech="direct"/>

我的两个理论:
  • 证书需要由 CA 签署
  • 我们使用由 CA 签名的证书进行了检查,但这没有区别
  • 但是,我们在配置它时可能会犯一些错误。我们应该试一试吗?
  • 我们需要对请求中包含的 BinarySecurityToken 进行签名。
  • 但是,我不知道我该怎么做

  • 我是否完全误解了这个主题,或者你们中的任何人都可以指出问题可能是什么以及如何解决它?

    最佳答案

    您需要签署安全 token 作为请求的一部分。

    在配置的绑定(bind)元素中,将安全元素模式设置为 SecurityMode.Message和消息元素 clientCredentialType 到 MessageCredentialType.Certificate :

    <security mode="Message">
    <message clientCredentialType="Certificate"
    algorithmSuite="Default"
    establishSecurityContext="true" />
    </security>

    接下来,创建一个端点行为来解析 client certificate 的位置。 :
    <behavior name="endpointCredentialBehavior">
    <clientCredentials>
    <clientCertificate findValue="Contoso.com"
    storeLocation="LocalMachine"
    storeName="TrustedPeople"
    x509FindType="FindBySubjectName" />
    </clientCredentials>
    </behavior>

    关于wcf - 如何使用 WCF 签署 X509 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12782869/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com