2011-01-13 100 views
15

我准备创建一个WCF服务,我们的客户可以使用它来更新我们系统中的数据。所以它必须通过互联网提供。我有一本关于WCF的书,我知道Message Security是在通过互联网提供WCF服务时要走的路。这是因为您不应该使用传输安全性,因为它只能用于可以保证服务和客户端之间存在点对点连接的环境中。我有没有得到那个权利? 所以我想使用消息安全结合自定义UserName认证。我明白我必须获得证书才能完成此项任务。我们公司已经拥有用于我们网站的SSL证书。WCF服务 - 使用用户名验证的证书和消息安全性

  • 我可以使用相同的证书作为WCF服务的消息安全吗?

而且

  • 是邮件安全的方式与期望ASMX web服务的客户可互操作的?

出于测试目的,我用Makecert创建了我自己的证书。它工作正常,但我总是不得不将证书添加到客户机上的Trusted Persons

  • 是否有可能使Message Security与上述证书不强制客户端证书添加到手动Trusted Persons

现在,让我们假设以下情形:

Company Infrastructure

有一个ISA-服务器/防火墙后面的两个Web服务器。此ISA服务器拥有www.company.com地址的证书。所有SSL的东西都由它来处理。它也将相应的请求转发给网络服务器。新创建的WCF服务应该在第二台Web服务器上运行。

  • 我必须将证书复制到Web服务器,以便能够使用Message Security

如果是的话,我听说复制证书不是好的做法,因为它降低了安全级别。将证书移动到Web服务器不是一种选择,因为Web-Server1上的网站也需要它。

  • 这种情况下我的选择是什么?

和:

  • 什么是此方案的最佳实践,无论给出的要求?

谢谢...

+0

在提到您希望使用用户名身份验证的消息安全性的问题中,我不确定为什么复制证书需要消息安全性?我错过了什么? – VoodooChild 2013-05-23 07:40:51

+1

使用MessageSecurity时,您的邮件可以被签名和/或加密。因此,您需要证书的私钥,而另一部分需要公钥。如果承载WCF服务的服务器没有私钥,他应该如何签署或加密邮件?或者解密这个问题的消息。消息安全性本身仅包含安全上下文,因此您不必依赖传输的功能。请参阅http://msdn.microsoft.com/en-us/library/ms733137.aspx – 2013-05-23 11:59:21

回答

12

精心准备的问题。首先,我可能读同一本书,我想澄清这一说法:

那是因为你不应该使用 运输安全性,因为它应该 只能在环境中使用,你 可以保证 服务和客户端之间存在 点对点连接。

是的。 HTTPS(传输安全性)仅提供点对点安全性,但IMO人员无法正确理解这种情况。你认为如果你通过HTTP连接到你的互联网银行,它会随机地在HTTPS到HTTP的互联网交换通信中间的某个地方?没有!点对点连接意味着客户端和访问网关之间的安全传输通道提供请求的URL。在您的情况下,它意味着客户端和您的ISA Server之间的安全传输通道。您的ISA和Web服务器2之间的通信不会受到保护。如果您希望端到端将提供客户端和Web服务器2(ISA不能拦截消息)之间的安全通道,则需要消息安全性。

我们您的其他问题:

我可以使用WCF服务的 信息安全相同的证书?

当然可以,但你必须私钥复制到你的Web服务器2

是邮件安全的方式 与期望 一个ASMX web服务的客户可互操作的?

不可以。纯粹的ASMX客户端不能使用消息安全性,除非您编写了很多自定义SOAP头和扩展或者安装WSE 3.0。

是否有可能启用消息 安全与上面提到的 证书不强制客户端 将证书手动添加到受信任 人?

是的,但颁发证书的证书颁发机构必须在客户机上受信任。这与HTTPS相同。使用消息安全保护的服务也可以在WSDL内公开证书的指纹。客户可以使用此指纹验证服务身份。我认为在这种情况下,您也不需要在客户端上安装证书,但是当证书过期时,所有客户端都必须更新。

我必须将证书复制到 Web服务器能够使用 信息安全?

是的,你必须。但是这可能是一个问题,因为出于安全原因,证书可能被标记为不可输出。最好的解决办法就是为了这个目的申请新证书。

相关问题