【发布时间】:2011-06-08 10:21:46
【问题描述】:
我正准备创建一个 WCF 服务,我们的客户可以使用它来更新我们系统中的数据。所以它必须在互联网上可用。我有一本关于 WCF 的书,从中我知道 Message Security 是在 Internet 上提供 WCF 服务时要走的路。那是因为您不应该使用传输安全性,因为它只应该在可以保证服务和客户端之间存在点对点连接的环境中使用。我做对了吗?
所以我想将 Message Security 与自定义 UserName 身份验证结合使用。我知道我必须获得证书才能做到这一点。我们公司已经拥有用于我们网站的 SSL 证书。
- 我可以为 WCF 服务的消息安全使用相同的证书吗?
和
- Message Security 方式能否与需要 ASMX Web 服务的客户端互操作?
出于测试目的,我使用 Makecert 创建了自己的证书。它工作正常,但我总是必须将证书添加到客户端计算机上的 Trusted Persons。
-
是否可以使用上述证书启用
Message Security,而无需强制客户端手动将证书添加到Trusted Persons?
现在,让我们假设以下场景:
在 ISA 服务器/防火墙后面有两个 Web 服务器。此 ISA 服务器持有 www.company.com 地址的证书。所以所有的 SSL 东西都由它处理。它还将传入的请求相应地转发到网络服务器。新创建的 WCF 服务应该在第二个网络服务器上运行。
- 是否必须将证书复制到网络服务器才能使用
Message Security?
如果是,我听说复制证书不是好的做法,因为它会降低安全级别。将证书移动到网络服务器不是一种选择,因为 Web-Server1 上的网站也需要它。
- 在这种情况下我有哪些选择?
还有:
- 无论给定要求如何,这种情况下的最佳做法是什么?
谢谢...
【问题讨论】:
-
在您提到您希望将消息安全与用户名身份验证一起使用的问题中,那么我不确定为什么消息安全需要复制证书?我错过了什么?
-
使用 MessageSecurity 时,您的消息可以被签名和/或加密。因此,您需要证书的私钥,而另一部分需要公钥。如果托管 WCF 服务的服务器没有私钥,他应该如何对消息进行签名或加密?或为此解密传入的消息。消息安全性仅包括安全上下文本身,因此您不必依赖传输功能。见msdn.microsoft.com/en-us/library/ms733137.aspx
标签: .net authentication wcf certificate