從.Net 2.0 Client呼叫WCF服務時如何配置安全性
我有一個WCF服務執行,並能夠使用basicHttpBinding在服務和.Net 2.0客戶端之間進行通訊.
我現在需要鎖定WCF服務,以便只能由經過身份驗證的客戶端呼叫.
我可以控制將呼叫我的服務的客戶端.客戶是將在野外安裝的產品的一部分,並且“打電話回家”來推送和拉取資料.客戶端應用程式是為.Net 2.0框架編寫的,目前無法升級到3.0或3.5版本.我無法向客戶機新增Windows使用者帳戶.
保護WCF服務並能夠從我的.Net 2.0客戶端進行身份驗證是什麼?此外,資料需要通過https傳遞.
我一直在搜尋網頁,覺得我正在野鵝追逐.
您可以將WCF端點配置為使用雙向SSL身份驗證.這意味著您可以要求客戶提供X.509證書,以便在向服務發出請求時確認其身份.
在伺服器端,您可以使用WCF中的一種內建驗證方案,或提供自己的驗證邏輯來檢查X.509證書.
如果您在IIS中託管您的服務,則配置SSL以在傳輸級別要求客戶端證書是微不足道的.但是,您可以在這裡找到一個關於如何在自託管WCF服務中實現此行為的良好指南:
ofollow,noindex" target="_blank">http://leastprivilege.com/2007/08/25/certificate-based-authentication-and-wcf-message-security/
我自己沒有嘗試過,但是由於這在訊息級別建立了安全性要求,我認為您必須使用wsHttpBinding才能在您的WSDL合同中執行此操作,因為對訪問Web服務施加安全要求是其中的一部分WS- *標準.
如果你必須使用basicHttpBinding,你可以嘗試這個解決方案,而不是在傳輸級別上移動:
http://leastprivilege.com/2007/08/26/certificate-based-authentication-and-wcf-mode-independent/
希望這可以幫助
http://stackoverflow.com/questions/232500/how-to-configure-security-when-calling-wcf-service-from-net-2-0-client