【问题标题】:WCF Restful Service with Service certificate带有服务证书的 WCF Restful 服务
【发布时间】:2013-12-03 19:15:32
【问题描述】:

我已经使用 ssl 和 SERVICE 证书(不是客户端证书,而是服务证书!)开发了一个带有 wsHttpBinding 的安全 WCF 服务。只有将自签名证书存储在其证书存储中的客户端才能使用该服务。

我使用了类似的配置:

<security mode="Transport">
  <transport clientCredentialType="None" />
   <message clientCredentialType="None" negotiateServiceCredential="true" />
</security>

<behaviors>
    <serviceBehaviors>
    <behavior name="CertificateServiceBehavior">
            <serviceCredentials>
...
                <serviceCertificate storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName" findValue="server" />
            </serviceCredentials>
...
        </behavior>
    </serviceBehaviors>
</behaviors>

我对 WCF 安全化很陌生。我已经搜索了很多关于证券化的信息,但我需要你帮助我解决我的问题。

今天我被要求保护 WCF Restful 服务。
浏览互联网,我发现我们可以:

  • 使用 ssl
  • 使用凭据验证客户端(使用 => 证书 = 客户证书)

我的问题是:

a) 从我开始的第一个示例开始,我假设当我们设置服务证书时,这是为了在 message 级别保护 wcf 服务 (与运输相比,因为 ssl 负责运输)。 如果我错了,请纠正我?

b) 对于 WCF Restful Service,我们使用的绑定是 WebHttpBinding。 根据http://msdn.microsoft.com/fr-fr/library/bb412176%28v=vs.110%29.aspx 下没有元素:

 <security mode="None/Transport/TransportCredentialOnly">
    // here there is only <transport> available with clientCredential="certificate" available.
 </security>

那么,我们可以为一个 Restful Service 设置一个服务证书吗?

感谢您的帮助!

【问题讨论】:

    标签: wcf security rest service certificate


    【解决方案1】:

    诚然,我在理解您的问题的细节时遇到了一些困难,但我发现(希望是正确的)您正在寻找建议以使用证书保护您的 WCF 服务。当面临类似的考虑时,我们的团队发现以下 MSDN 文章提供了全面且易于理解的消息安全性与相互证书的演练。

    http://msdn.microsoft.com/en-us/library/ms733102(v=vs.110).aspx

    文章清楚地指出了必要的要求,并提供了代码和配置示例。

    问候,

    【讨论】:

    • 我读了很多书,我很困惑。我的意思是,正如您在链接中看到的那样:要设置服务器证书,我们使用&lt;security mode="message" /&gt;。简而言之:我不确定我们是否可以对 WCF 休息服务做同样的事情,因为我们只能设置 &lt;security mode="Transport"/"None"/"Basic"/"TransportWithCredential" /&gt;(因为 WebHttpBinding 文档)。我想要一个确认。所以相反,我想我只能使用客户端证书(仍然是 Rest 服务)
    • 我想我明白了……您想将传输安全性与证书身份验证一起使用。检查以下链接,这些链接应提供澄清所需的详细信息:msdn.microsoft.com/en-us/library/ff650785.aspxcodeproject.com/Articles/348595/…
    • 谢谢,第二个链接真的很有用,它公开了相互认证,我理解得更好:我们可以看到客户端可以使用证书进行身份验证以及如何在服务器端配置以授权客户端.我们还可以看到客户端可以识别具有证书的服务器:这不是我要询问的“服务证书”(消息),但我猜在安全传输(和 Rest Service)的情况下,服务器只能带有 ssl 证书的authenticad(传输安全)。
    猜你喜欢
    • 2013-08-03
    • 1970-01-01
    • 1970-01-01
    • 2012-05-10
    • 2012-08-06
    • 2015-04-21
    • 2014-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多