2009-12-07 144 views
0

我正在編寫一組使用可信子系統模型依賴傳輸安全性和Windows身份驗證的WCF服務。但是,我想根據發起請求的原始客戶端用戶(例如來自具有用戶名/密碼的網站的用戶)執行授權。我打算通過在客戶端發送消息之前在頭中添加原始用戶的憑據來實現此目的,然後該服務將使用提供的憑據來授權用戶。所以我有幾個關於這個實現的問題:WCF安全傳輸安全問題

1)使用傳輸安全與Windows身份驗證,我不需要再擔心再次加密傳遞的憑據,以確保有效性... WCF自動照顧這一點 - 是這正確嗎?

2)該實現如何防止惡意服務在域中的某個Windows帳戶下運行,從而發送標有欺騙性憑證的郵件。例如,惡意服務會用管理員用戶替換憑據來做一些不好的事情?

感謝您的任何幫助。

回答

0

您使用的是什麼綁定?此服務僅限於您的公司局域網中,還是您計劃出門在防火牆之外?

要回答你的問題(據我可以)

1)在Windows身份驗證通過傳輸安全,傳輸層將被加密和安全的 - 沒有必要擔心憑證等

的額外的加密

2)它不能。如果惡意服務設法「劫持」了一些有效的Windows憑據,並且在您的公司網絡上擁有賬戶的「John Doe」,則WCF服務無法將其與John Doe的有效請求區分開來。

+0

是的,這項服務只會在企業局域網內使用NetTcpBinding。 2)您是否知道我們可以防止這種情況發生的其他方式?或者你能否建議一些其他類型的實現仍然允許使用受信任的子系統模型,同時根據原始請求進行授權? – shyneman 2009-12-07 21:39:54

+0

爲2) - 不,不是真的 - 但惡意服務必須能夠劫持現有的Windows帳戶,包括其安全令牌 - 我相信在公司局域網內,這是不太可能的 – 2009-12-07 21:41:00

+0

2)唯一的選擇使它更安全的是使用標準的Windows模擬,而不是將自己的Windows憑據打包爲明文。讓Windows處理它的所有模擬方面 – 2009-12-07 21:41:38