【问题标题】:How to use WCF Message Security with external clients如何将 WCF 消息安全与外部客户端一起使用
【发布时间】:2014-02-04 13:32:43
【问题描述】:

这是我的场景:

我需要托管一个可供多个客户使用的 WCF Web 服务应用程序。每个客户负责他们自己的客户端应用程序,他们将使用不同的技术构建他们的客户端应用程序。他们的客户端很可能都不是 .Net(可能是 Java 或其他)。

我需要实施 Message Level Security 以遵守他们的政策(传输安全性不够)。

鉴于上述要求,我很难理解如何在 WCF 中实现可由不受我控制的客户端使用的消息安全性。我读过的所有内容都讨论了我将构建自己的客户端的场景,并且客户端甚至会在我的网络域中。

如果我使用证书实施消息安全,我可以在我的服务器上安装一个证书并让每个客户端负责在他们的服务器上安装他们自己的证书吗?那么我们是否能够通过简单地共享公钥来使用 Message Security?

【问题讨论】:

    标签: wcf wcf-security


    【解决方案1】:

    基本上,您在上一段中所说的是正确的。您将向 WCF 服务的订阅者提供他们将在其客户端计算机的 LocalMachine/My 存储中安装和注册的公钥 (.cer) 文件。

    在主机端,您需要将证书公钥安装在 LocalMachine/TrustedPeople 存储中,并将私钥(.pfx 或 .pvk)安装在主机 LocalMachine/Personal 存储中。

    您可以稍微改变安装/注册公钥和私钥的位置,但是您必须配置 WCF 服务才能在您的服务器上找到这些证书元素。客户也必须这样做。

    这确实有效。我已经做到了。

    您可以使用 .bat 文件以及 makecert.exe 和 certmgr.exe DOS 命令自动执行其中的一些操作,以确保所有内容都安装在正确的位置。

    【讨论】:

    • 听起来我走在正确的轨道上,很高兴听到您确实做到了这一点。我只想澄清一件事:我需要导出我的证书的公钥并将其提供给每个客户,他们需要在他们身边导入该证书。反过来,他们需要导出他们个人证书的公钥,而我需要导入我这边的公钥。对吗?
    • 您只需将您的公钥 (.cer) 发送给他们,因为您是主机。您不需要他们提供任何证书。他们需要在将作为主机客户端的任何机器上安装您的证书。出于测试目的,您可以使用自己使用 Windows 中的 makecert 函数创建的证书。这将为您和您的客户节省一些钱,但是当生产时间到来时......好吧,你知道的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-02
    • 2014-04-24
    • 1970-01-01
    • 2020-01-24
    • 1970-01-01
    • 2014-06-13
    相关资源
    最近更新 更多