2017-06-20 135 views
2

什麼是最好的(或至少一個工程)選項來保護IIS託管的REST WCF服務,將由JavaScript客戶端調用?IIS WCF服務身份驗證,JavaScript客戶端

我擁有的服務是從客戶端接收GET和POST的REST服務,它通過http和https工作正常。我一直在嘗試實現身份驗證,我有一個用戶和角色等我自己的結構數據庫(所以我想避免Windows身份驗證) 我一直在嘗試不同的事情,但我可以'沒有任何工作。

我試過的最後一件事是帶有ServiceAuthorizationManager和UserName Auth(Message)的基本身份驗證(傳輸)與自定義驗證程序。

我不知道是否可以使用基本身份驗證的自定義驗證器(從System.IdentityModel.Selectors.UserNamePasswordValidator繼承),或者如果我可以在http(s)REST請求中添加用戶名驗證憑證(也許它需要成爲一個SOAP服務?)。

另外我想使用類似於自定義RoleProvider的東西來控制基於用戶組/角色的方法訪問。

謝謝。

+0

不是一個真正的答案,但我跟着你的問題,因爲我有一個即將到來的項目是非常類似的。我已經保存在地平線上,因爲我知道我想實現令牌認證,可能值得一讀,或者可能對您的需求沒用。雖然不能傷害到分享。 http://www.developerhandbook.com/c-sharp/create-restful-api-authentication-using-web-api-jwt/ –

+1

@TravisActon我不認爲這正是我所需要的,但無論如何要感謝。我想我終於明白了。一個主要的問題是,如果沒有Windows用戶並且我有自定義用戶,我無法通過第一次身份驗證。如果它按預期工作,我將發佈相關代碼作爲答案 – mikepa88

+0

強烈建議您在使用基本身份驗證時強制使用HTTPS,否則客戶端將以純文本方式通過網絡發送您的用戶憑據。 –

回答

2

有幾種方法可以做到這一點:

** 1。使用客戶證書認證。

請參閱以下文章:**

您可以授權基於他們通過(使用指紋)證書上你的客戶,你可以很容易地分類。

2.使用SQL成員資格提供程序實現基本身份驗證

參考這些文章:

你將不得不採取什麼最符合你的目的,什麼呼叫會更容易在未來的維護。證書管理在大多數時候都是一種痛苦,但是它擁有自己的一系列優勢。我個人會與第二個選項使用基本身份驗證與SQL會員供應商

相關問題