簡體   English   中英

具有WsHttpBinding的WCF安全TransportWithMessageCredentials

[英]WCF security TransportWithMessageCredentials with WsHttpBinding

我有我的網站(https:// example.com)。 這是一個互聯網應用

  1. 用戶可以從上述網站注冊-已完成
  2. 注冊用戶將收到一封電子郵件,並可以點擊下載Windows客戶端(WPF或Windows Form客戶端)–已完成
  3. 此WPF或Windows窗體客戶端將使用example.com上托管的WCF(部署在Internet中)。 我正在內部在消息正文中傳遞UserName和Pwd。

現在,我需要知道的是如何在消息級別和傳輸級別實現安全性。

  1. 客戶請求應在消息級別加密
  2. WCF服務器響應應在消息級別加密
  3. 客戶端與服務器之間的通信應為SSL

我已經從msdn.microsoft.com/en-us/library/ff648902.aspx經歷了

  1. 如何:在Windows窗體的WCF調用中將wsHttpBinding與用戶名身份驗證和TransportWithMessageCredentials一起使用
  2. 如何:使用SQL Server成員資格提供程序的用戶名身份驗證和從Windows窗體進行的WCF調用中的消息安全性
  3. 如何:在Windows窗體的WCF調用中使用證書身份驗證和消息安全性

閱讀以上內容后,我感到困惑,我需要使用哪一個。 請提出哪種方案是我的方案滿足以上三個安全條件的最佳選擇

如果使用TransportWithMessageCredential ,是否在消息級別和傳輸級別都看到加密?

TransportWithMessageCredentials是一種加密/安全性選項,當WCF Web服務框位於正在執行SSL / HTTPs加密工作的負載平衡器或反向代理的前面時。

在“正常”情況下,您的WCF Web服務框位於邏輯DMZ內,由WCF主機進行的加密和客戶端身份驗證檢查是在單個步驟中完成的,並且“裸露”的請求內容(未加密且沒有客戶端身份驗證憑據) )由您的服務處理。

但是,如果您使用的是執行加密的負載平衡器或反向代理(出於多種原因,這是一個好主意),則使用“常規”傳輸加密將向WCF Web服務傳遞一條消息,而無需客戶端身份驗證憑據。

因此,TransportWithMessageCredentials所做的是將其保留在郵件正文中的客戶端身份驗證憑據,以便在RP / LB解密了郵件之后,WCF Web服務可以在第二步中處理您的客戶端身份驗證請求。

跟隨? 基本上,如果您使用F5負載平衡器或某些反向代理在WCF Web服務處理消息之前對其進行加密/解密,則需要TransportWithMessageCredentials。 無需負載平衡器或反向代理,無需TransportWithMessageCredentials。

希望這可以澄清事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM