2012-11-01 47 views
6

我使用http基本身份驗證和SSL創建了WCF服務。 (IIS atm中的臨時證書)IIS中的WCF,http基本身份驗證 - Windows用戶「安全性」影響

以下是相關配置。

<services> 
    <service name="MyNamespace.MyService"> 
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="basicHttps" 
     name="MyEndPoint" contract="MyNamespace.IMyService" /> 
    </service> 
</services> 
<behaviors> 
    <serviceBehaviors> 
    <behavior name=""> 
     <!-- These will be false when deployed --> 
     <serviceMetadata httpsGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="true" /> 
    </behavior> 
    <!-- This doesn't do anything in IIS --> 
    <behavior name="CustomUsernameValidatorBehavior"> 
     <serviceCredentials> 
     <userNameAuthentication userNamePasswordValidationMode="Custom" 
      customUserNamePasswordValidatorType="MyNamespace.CustomUserNameValidator" /> 
     </serviceCredentials> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<bindings> 
    <basicHttpBinding> 
    <binding name="basicHttps"> 
     <security mode="Transport"> 
     <transport clientCredentialType="Basic" /> 
     </security> 
    </binding> 
    </basicHttpBinding> 
</bindings> 

由於我在IIS託管的事實,我不能用我的customUsernameValidator和IIS基本身份驗證試圖對Windows中的用戶名和密碼。

我創建了一個新用戶,禁用本地登錄,並將其放入一個新組(無權限)。 只有用戶的目的是確保他們被允許訪問服務,沒有別的。該服務將在線,而不是內部在一個內聯網等

我的問題歸結爲這,是否有安全風險/影響因爲我使用真正的Windows用戶?如果可以的話,可以做些什麼來保護這個服務/ IIS?

應該做些什麼來防止信息的「網絡釣魚」,例如他們可以嘗試使用不同的用戶名和密碼來查找憑證嗎?

這是一個工作綁定(減去一些其他端點等)爲WCF在IIS和SSL中使用Http基本身份驗證。它需要IIS安裝基本身份驗證,以及Windows用戶進行身份驗證。我不想對Windows用戶進行身份驗證。

+1

我已經主持了兩次WCF WebServices的一個上IIS6和IIS7和能夠使用的自定義名稱的驗證,但我是用wshttps結合,我相信不是。我有這個鏈接書籤從我設置它希望它可以幫助。 http://www.codeproject.com/Articles/96028/WCF-Service-with-custom-username-password-authenti – vikingben

+0

感謝您的鏈接。現在我想到了將會有非WCF客戶端連接。我必須檢查wsHTTPBinding是否合適,但鏈接看起來很有趣。 – lko

+1

我使用的客戶端範圍從web應用程序中的ajax調用到直接Java客戶端,並且沒有問題。祝你好運,如果你需要更多的配置信息讓我知道。我發現的是配置是最難的部分。我有一個設置用於驗證傳入請求以及一個檢查器類,以將所有soap請求記錄到服務中。 – vikingben

回答