[英]Best authentication/security strategy for WCF service with multiple clients
[英]Best strategy to pass a token / cookie to a WCF service?
我們正在.net 4.0上使用WCF構建Web服務。 該服務將主要由ASP.net MVC前端使用,但也將由.net Windows應用程序使用。
由於我們不想保存用戶憑據,所以提供的基本用戶名/密碼auth不會這樣做,因此我考慮使用RNGCryptoServiceProvider.GetBytes()進行一次身份驗證並創建一個簡單的令牌(或者我應該將其稱為cookie?)然后使用它來驗證進一步的請求。
我已經研究了使用WCF進行安全性的各種常用方法,它們看起來過於復雜,特別是當我們想要做的只是將cookie傳遞給每個方法調用時。
將此cookie從WCF客戶端傳遞給我們的WCF服務的最佳策略是什么? 首選方法將盡可能與WCF的安全架構緊密結合。
到目前為止,我一直在使用自定義HTTP標頭或自定義授權,但我不相信哪種方法更合適,如果有的話。
請記住,對於ASP網站,將為每個請求創建一個新頻道,同時它將在Windows應用程序上重復使用。
IMO有兩種方法可以做wcf安全,傳輸或消息傳輸。
您可以在應用程序中實現用戶名類型身份驗證 因此,客戶端必須填寫用於發送消息的用戶名和密碼。 所以客戶端的綁定看起來像
<security mode="TransportWithMessageCredential">
<message clientCredentialType="UserName"/>
</security>
在服務器端,您可以實現自己的密碼驗證程序,如此示例所示
這樣做會在服務器上驗證您的消息,您可以實現您想要的密碼驗證邏輯。 使用此消息將使用ssl加密,並使用您在服務端實現的邏輯進行身份驗證。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.