具有服务证书的WCF Restful服务

具有服务证书的WCF Restful服务,wcf,security,rest,service,certificate,Wcf,Security,Rest,Service,Certificate,我使用ssl和服务证书(不是客户端证书,而是服务证书!)开发了一个带有wsHttpBinding的安全化WCF服务。只有在其证书存储中存储自签名证书的客户端才允许使用该服务 我使用的配置类似于: <security mode="Transport"> <transport clientCredentialType="None" /> <message clientCredentialType="None" negotiateServiceCredentia

我使用ssl和服务证书(不是客户端证书,而是服务证书!)开发了一个带有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
  • 使用凭据对客户端进行身份验证(使用=>Certificate= 客户端证书)
我的问题是:

a) 从我开始的第一个示例开始,我假设当我们设置服务证书时,这是在消息级别对wcf服务进行安全化 (与传输相比,ssl负责传输)。 如果我错了,请纠正我

b) 对于WCF Restful服务,我们使用的绑定是WebHttpBinding。 根据 以下内容中没有任何内容:

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

//这里只有clientCredential=“certificate”可用。
那么,我们可以为restful服务设置服务证书吗


谢谢你的帮助

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

本文明确指出了必要的需求,并提供了代码和配置示例


您好,

我读了很多书,感到很困惑。我的意思是,正如您在链接中看到的:要设置服务器证书,我们使用
。简而言之:我不确定我们可以用WCF rest服务做同样的事情,因为我们只能设置
(因为WebHttpBinding文档)。我想确认一下。因此,我想我只能使用客户机证书(仍然是Rest服务),我想我能理解。。。您希望将传输安全性与证书身份验证一起使用。检查以下链接,这些链接应提供澄清所需的详细信息:这可能正是您需要的:谢谢,第二个链接非常有用,它公开了相互认证,我更了解:我们可以看到客户端可以使用证书进行身份验证,以及如何在服务器端配置以授权客户端。我们还可以看到,客户机可以识别具有其a证书的服务器:这不是我所询问的“服务证书”(消息),但我猜在安全传输(和Rest服务)的情况下,服务器只能使用ssl证书进行身份验证(传输安全)。