2010-12-15 180 views
0

我需要幫助WCF如何正確設置驗證/授權。我希望儘可能使用盡可能多的方法來完成這項工作。WCF驗證/授權 - 需要幫助

我正在設置一個WCF 4.0應用程序服務,並且我將同時連接到同一服務的4.0 web和4.0 silverlight客戶端。我希望客戶端調用服務的驗證方法(它將驗證數據庫的用戶名/密碼),然後將令牌返回給客戶端。然後,客戶端將存儲該令牌,並在隨後的每次服務調用中將其發送(透明地)。在服務上,每次通話都會驗證此令牌。另外我需要在使用UserID的每個操作調用期間進行一些安全檢查(服務器端),以便可能需要包含在令牌中。

我想獲得一些客戶端/服務器如何完成這個例子!謝謝!

+0

您所描述的場景可能是最「不開箱即用」的 - 您基本上都是在自己的自定義代碼中做所有事情(身份驗證,授權).... – 2010-12-15 06:07:15

回答

0

您可以使用WSHttpBinding編寫自定義用戶名密碼驗證程序。這將使您能夠驗證用戶名密碼。但是,您無法將數據添加到發生身份驗證後共享的令牌。

這是一個會話綁定,這意味着客戶端在服務器上有一些關聯狀態。 (這是在兩者之間,因爲您可能需要restablish在auth如果請求轉到另一個服務器負載平衡器縮放退出方案不利於)

http://www.pnpguidance.net/post/WCF35SecurityGuidelinesNowAvailable.aspx

授權部分是棘手的部分,因爲你可以無論是明確指定主體權限還是強制性選項。 http://msdn.microsoft.com/en-us/library/ff647503.aspx#AuthorizationOptionsWCF

3

我結束了使用自定義安全令牌服務。我的客戶調用STS,進行身份驗證並獲取一個存儲的令牌。然後我使用消息檢查器將令牌插入每個傳出的wcf服務調用中,並使用服務器端的消息檢查器通過驗證令牌來攔截和驗證每個調用。這工作得很好。