【问题标题】:WCF - Does Transport Security only work for Intranet Scenario?WCF - 传输安全是否仅适用于 Intranet 方案?
【发布时间】:2014-04-11 17:43:34
【问题描述】:
我想在传输级别保护 WCF 服务,但是阅读这篇文章它说它适用于 Intranet 场景:
http://msdn.microsoft.com/en-us/library/ff648863.aspx
“在以下场景中使用传输安全性:
您正在将消息直接从您的应用程序发送到 WCF
服务和消息不会通过中间路由
系统。
服务和客户端都位于 Intranet 中。”
对于互联网场景应该使用消息安全的方法吗?
“您的 WCF 客户端正在通过 Internet 访问 WCF 服务,并且
消息可以通过中间系统进行路由。”
请告诉我传输安全是否仅适用于 Intranet 场景?
【问题讨论】:
标签:
c#
wcf
transport-security
【解决方案1】:
您可以对 Internet 上的服务使用Transport 级别的安全性。通常建议使用Message 级别的安全性,因为它提供了更高级别的安全性。 Message-level 提供端到端安全性,而Transport-level 仅提供点对点,但这并不意味着没有Message 安全性就无法创建安全的 WCF 服务。
在某些情况下,互联网上的Message 安全性是一个糟糕的选择,例如Streaming Large Data。使用Message 安全性,您不能以块的形式流式传输数据,因为当设置了消息安全性时,WCF 会在传输之前将所有消息缓冲到内存中。这可能会导致可伸缩性问题。
您可以使用Secure HTTP(HTTPS 协议)在 Internet 上使用 Transport 安全性保护您的 WCF 服务。在服务器机器上安装证书,将证书绑定到服务器机器上的指定端口,SSL将提供安全性。
但我总是会在互联网场景中使用Message 安全性——除非情况不允许,如上述大数据场景。