我遇到過幾個關於通過LDAP Active Directory服務器將用戶認證集成到公司網站的問題。該網站主要用於內部安全訪問文件/ PDF。該網站可在我們的網絡外部訪問,因爲某些客戶還需要能夠查看/上傳文件以進行訂單和驗證。我們確實有一個SSL證書,用於安全訪問該網站,適用於內部和外部。PHP用戶認證和安全方法:LDAP-AD和SQL Server
目前,該站點使用PHPass進行密碼處理,同時將用戶信息存儲在MS SQL Server數據庫中。需要訪問該網站的用戶將被添加到此數據庫中,並註冊帳戶級別並處理密碼方面的問題。此方法非常安全,對於當前使用情況(內部員工,爲外部客戶分離的數據)工作良好。但是它也引入了整個系統的更多故障點。 IE:用戶需要記住(或忘記)的其他密碼以及管理員額外的帳戶管理開銷。
在計劃簡化網站身份驗證時,我負責整合Active Directory用戶信息以便用於登錄。這對我們公司的員工會很好,因爲他們已經有一個AD帳戶。但是,不會爲供外部供應商或客戶使用,因爲他們沒有AD帳戶(也不應該)進行身份驗證。
這使我相信最簡單的解決方案是有一個「主要」形式的身份驗證(針對AD)和對已經創建的SQL用戶數據庫的回退。像AD一樣回來的用戶使用這些憑證,或者搜索用戶的SQL DB(其中包含我們需要的任何非AD帳戶)。
問題:
- 是覈查上述方法的邏輯和安全的計劃? 如果不是,我該怎麼做呢?
- 如何防範LDAP攻擊/蠻力?
- 在PHP/SQL,利用參數/類型轉換查詢,帳戶鎖定/超時,一般錯誤信息,正確的密碼哈希方法,等等 - 增加了用於固定的數據庫和強制登錄嘗試
- 有關的ldap_bind,用戶名和密碼是通過網絡發送到LDAP服務器的清晰?
- 由於此登錄對於整個網絡,我怎麼能保證我的登錄/網站是不是安全的最薄弱的環節,或造成不應有的四通八達的交通網絡密碼信息?
注意:這是張貼在StackOverflow上,而不是ServerFault,因爲我的問題是編程PHP網站的安全性。我的問題首先涉及用戶登錄網站的訪問權限,限制和權限問題,同時向AD或備份數據庫進行身份驗證。
我接受你的答案,即使它不*技術*回答這個問題。具有兩個用戶數據庫的額外管理開銷和故障點/攻擊媒介並不理想。我已經將外部帳戶添加到了AD,並且使用了非常鎖定的GP,該GP也拒絕了本地登錄和其他不需要的網絡訪問。 – PenguinCoder 2012-05-08 15:10:37