我有一個特定的Silverlight應用程序,由WCF服務提供數據。我想確保WCF服務僅由調用,即具體的 Silverlight應用程序。什麼是最好的方式來實現這一點,我必須做什麼?它不一定是一個高度安全的解決方案。如何確保WCF服務僅由特定應用程序使用?
由於提前, 弗蘭克
我有一個特定的Silverlight應用程序,由WCF服務提供數據。我想確保WCF服務僅由調用,即具體的 Silverlight應用程序。什麼是最好的方式來實現這一點,我必須做什麼?它不一定是一個高度安全的解決方案。如何確保WCF服務僅由特定應用程序使用?
由於提前, 弗蘭克
啓用服務基本認證(用戶名/密碼)。創建一個單獨的用戶,Silverlight應用程序將使用該用戶對服務進行身份驗證。
更簡單但不太安全的做法可能是僅使用某種標識符(僅Silverlight客戶端已知)作爲服務參數。
這兩個選項在使用HTTPS實施時顯然是最安全的。這可以通過使用服務器證書來完成。
您CAN NOT限制訪問此類服務。您的應用將需要訪問您選擇的任何密鑰/密碼。反編譯你的應用程序並提取密鑰是微不足道的。 SSL/TLS不起作用 - 因爲可以從編譯後的代碼中提取密碼。
這個問題已經被問了好幾次最近 -
如果你的應用是匿名運行,那麼它幾乎不可能做到100%安全。
如何過,如果你的要求是你的用戶,然後進行身份驗證,你應該能夠使該服務通過要求他們的登錄憑據相對安全...
我不知道它是否易於使用WCF,但我猜你可以使用客戶端證書做些事情。我只使用這種方法來保護網站,這是很容易做...
該方法的問題是,密鑰/密碼不安全。無論是flash/silverlight還是javascript,都可以輕鬆地從中提取密鑰。 – 2010-04-15 13:32:11
對,好點。在javascript等情況下,沒有辦法以100%安全的方式編程執行此操作。所以,這可能意味着你在Web服務器/防火牆中遇到了諸如客戶端證書或基於IP的過濾之類的東西,可能與上述解決方案相結合。 – 2010-04-15 17:48:08
無論如何,100%的安全性是一種幻想:) 這只是「多少努力和技能才能繞過安全限制」。所以這取決於數據的重要性。用戶名/密碼認證將爲我做,感謝所有答案! – Aaginor 2010-04-21 14:33:43