我正在考慮啓動一個需要安全的新Web應用程序(如果沒有其他原因,我們將需要PCI(支付卡行業)認證點)。使用Active Directory在面向萬維網的網站中驗證用戶身份
根據以前使用PCI(在一個域中)的經驗,首選的方法是使用集成的Windows身份驗證,然後使用kerberos一直通過應用程序傳遞到數據庫(所以NT用戶在數據庫中擁有權限)。這允許更好的審計以及對象級權限(即最終用戶不能讀取信用卡表)。
即使有人妥協網絡服務器,他們也無法從數據庫中收集任何/多少附加信息。此外,網絡服務器沒有存儲任何數據庫憑據(超出了簡單的匿名用戶,對簡單網站配置的權限很少)
因此,現在我正在尋找將在公共互聯網上。一個建議是有一個Active Directory服務器,併爲AD的每個用戶創建Windows帳戶。然後這些用戶將被放置到合適的NT組中,以決定他們應該擁有哪些數據庫權限(以及他們可以訪問哪些頁面)。
ASP.Net已經提供了AD成員資格提供者和角色提供者,所以這應該相當簡單的實現。
圍繞這個問題有很多問題 - 可擴展性,可靠性等......我想知道是否有任何人有這種方法的經驗,或者更好,爲什麼要做/不是更好的理由去做吧。
任何輸入理解
謝謝 - 我也被朋友警告過ADAM(出於類似的原因)。雖然我們可以在配置文件中加密密碼,但是我們是否仍然會丟失數據庫中的所有對象級權限?即最終用戶可以從信用卡表中讀取?另外,如果Web服務器可以使用加密的憑證登錄到數據庫,那麼任何危害Web服務器的人都可以這樣做? – Basic 2010-03-20 12:01:02
擴大我的OP討論加密的CC號碼。如果您使用的是Windows身份驗證,則開發人員無法強制帳戶獲取號碼。還有一些測試可以運行,以確保網站不會被劫持,但即使它(並假設網站完全免受SQL注入攻擊),黑客也會想要使用它來獲取數據庫的副本。在這種情況下,這將是沒有用的,因爲他不會有解密密鑰。 – Thomas 2010-03-20 15:27:23
感謝您的鏈接 - 看起來非常有用! – Basic 2010-03-21 14:43:40