2015-02-11 58 views
5

我期待通過互聯網向客戶提供一項服務。在這個階段,api非常小,我只希望知道的客戶能夠訪問該服務。我現在不需要能夠識別客戶,但是我設想,將來我需要能夠識別客戶,隨着api的增長。最好的方式來保護互聯網上的WCF服務與少數客戶端

我想知道在短期內保護服務的最佳方式是什麼,以期我可以授權客戶端訪問服務上特定方法的較長期限?

我在考慮使用傳輸安全 - 即SSL。我也應該看看使用信息安全與

clientCredentialType="certificate" 

其中CLASE每個客戶都會有自己的證書將與服務驗證他們的身份?

或者我應該簡單地爲每個客戶端提供一個API密鑰,以提供類似級別的客戶端差異化?

歡迎任何其他建議。

請注意,這是服務接口的服務 - 即不是客戶端應用程序。該服務的用戶數量將受到限制,並且我預計不需要在數據級別應用安全性,而且在方法訪問級別上也是如此。

+0

「安全」是什麼意思?你的攻擊者叫夏娃,馬洛裏還是什麼?當然,最簡單的通用解決方案之一就是Kerberos over SSL。 – Aron 2015-02-11 03:34:07

回答

0

你可以使用自定義的用戶名/口令認證,驗證用戶或AD身份驗證以控制誰可以使用該服務。

因爲您不想識別用戶,所以現在最好的解決方案就是使用自定義用戶名/密碼認證,並且允許每個人現在使用。將來,當您想要識別用戶時,請更改代碼並進行驗證。

請參閱https://msdn.microsoft.com/en-us/library/aa702565(v=vs.110).aspx。在驗證功能中,現在不要拋出任何異常

1

給他們每個密鑰,他們必須提交一個SHA簽名與他們的請求(他們傳入的一些/所有參數的編碼版本,所以你也可以做SHA並檢查它的匹配) 。

1

現在最簡單的方法是將SSL添加到您的IIS主機,然後更改客戶端上的HTTPS連接,這樣的...

 <security mode="Transport"> 
     <transport clientCredentialType="None" /> 
     </security> 
+0

這將提供安全性,但不會幫助OP確保只有指定的客戶端才能使用該服務。 – DeanOC 2015-02-11 02:25:43

+0

是的,好點。 – 2015-02-11 22:37:07

相關問題