2009-10-03 74 views
0

我建立,將有網絡,窗口和手機(iPhone)客戶端應用程序,我想使用WCF實現服務層和不熟悉WCF我有點在涉及安全,認證和授權時感到困惑。WCF安全的Web,Windows和移動客戶端

我通常喜歡的是重新使用盡可能多的ASP.Net成員部件儘可能的給我節省時間編寫代碼,因爲它是繁瑣和重複。這是一個好方法,還有什麼替代方法?

誰能給我指導如何最好地實現我所期待的?

回答

1

查看本系列文章WCF security scenarios,它解釋了許多您應該接受的最佳實踐。

你基本上用於保護客戶端和服務器之間的通訊三種選擇:

  • 沒有
  • 傳輸級(如保護整個消息直接在協議層)
  • 消息級(例如保護/加密消息本身)

通常情況下,當您確信只有一個單跳時,您會傾向於使用傳輸級別(TCP/IP級別)安全性在您的客戶和您的服務之間,例如在防火牆後面的企業局域網環境中。這是最快的 - 在公司(Windows)局域網環境中使用netTcpBinding

如果您有潛在的多跳(例如路由器,存儲轉發中介等) - 通常是您的互聯網/外部客戶端場景 - 那麼傳輸級別的安全性將不再起作用,因此您可能必須使用消息級別的安全性來加密和簽署消息本身,因爲它從客戶端傳輸到服務。

現在,這只是關於保護消息的方式。

至於認證(知道他是誰打電話給你的),你通常可以在你的局域網/公司使用Active Directory/Windows憑據,或者使用外部客戶端的用戶名/密碼(或者可能用於同一目的的證書,儘管這是一個更多的工作)。你也可以設想允許匿名用戶不告訴你他們是誰 - 或拒絕他們 - 這取決於你。

一旦你知道這是誰給你打電話,你可以再做授權 - 決定他們能做什麼。在這裏,您通常在公司/局域網場景中使用Active Directory組成員資格,或者在其他場景中使用ASP.NET成員資格/角色系統。或者你可以推出自己的產品 - 這完全取決於你。

希望幫助一下,讓你開始了吧!

Marc