2010-08-25 98 views
3

這是我的場景,我有一個WCF服務,位於防火牆後面的內部服務器上。WCF需要哪種類型的安全

客戶端是駐留在DMZ中的Web服務器上的Web應用程序。 防火牆在兩個節點之間的端口上打開,因此可以從客戶端連接到服務器。

這裏我需要使用什麼類型的綁定來實現安全。你知道一個示例程序或教程嗎?

當我搜索這個時,我發現所有服務都被客戶端通過互聯網使用,並使用Windows身份驗證或提示輸入用戶名和密碼。

我只需要我們在Web服務器上的應用程序來與Web服務交談。任何建議表示讚賞。 謝謝!

此外,我的Web服務作爲控制檯應用程序運行。

+0

你想用你的安全保護什麼?銀行業務?未經授權的帖子到論壇?或者是什麼? – 2010-08-25 19:01:15

+0

這是用戶的交易歷史記錄。基本上只有購買歷史是全部。沒有太大風險,但我們希望有些安全。基本上我們不想被破解。 – twal 2010-08-25 19:23:29

+0

Web服務作爲控制檯應用程序運行?這聽起來不像是好的生產架構。 – 2010-08-25 20:32:24

回答

1

如果你在控制解決方案的兩端(DMZ中的web服務器(客戶端)和控制檯應用程序(服務器)後面),那麼爲什麼不用NetTcpBinding

  • 這是一個.NET特異性結合,所以 你不會對互操作性 (但既然你有通信雙方 兩端的控制,這聽起來像 這不是一個問題)。
  • 它的性能比WSHttpBinding綁定的 更快,並且導致發送較小​​的消息的結果爲 。

這聽起來像你並不需要與消息(除了用戶ID或某種類型標識符消息中傳遞的)一起傳遞的憑據,所以你可以使用此綁定使用TcpClientCredentialType.None。

Here很好地描述了每個內置WCF綁定的安全特性。 NetTcpBinding的描述大約是下一頁的1/3。

我希望這會有所幫助。

+0

太好了,謝謝你,我會看看這個。我感謝您的幫助! – twal 2010-08-25 21:43:57

+0

希望它適合你。如果還有其他問題,請添加評論,我會相應地更新我的答案。祝你好運! – 2010-08-25 21:57:19

+0

對不起,如果這些都是啞巴的問題,我想在這種情況下使用什麼安全模式?運輸? – twal 2010-08-25 22:11:01

0

如果您從可能受到攻擊的地方開始,然後嘗試並保護它。 3 obvoius攻擊它是:

  • 收聽服務器之間的流量。使用加密協議,例如帶消息加密的ws-httpbinding。 Nettcp綁定也適用於此。
  • 直接調用WCF服務。刪除MEX,以便他們無法獲得您的服務的簽名,需要對服務進行身份驗證。
  • 從Web服務器獲取服務的認證信息。不要將用戶名和密碼以明文形式存儲在配置文件中。例如,使用您正在運行的服務的安全上下文。

這解決了一些問題,總是有更多的事情可以做。