我需要能夠存儲用戶的Exchange密碼,以便以後可以使用它來使用EWS執行某些任務。我知道以純文本存儲密碼是一個可怕的犯罪,所以我有什麼選擇?如何存儲密碼以備後用?
就我而言,我的應用程序將有權訪問管理員帳戶,該帳戶將能夠使用模擬來處理用戶的日曆。我需要存儲此管理員帳戶的密碼,以便在稍後使用Exchange服務器進行身份驗證時使用它。我不打算使用EWS託管API。
我需要能夠存儲用戶的Exchange密碼,以便以後可以使用它來使用EWS執行某些任務。我知道以純文本存儲密碼是一個可怕的犯罪,所以我有什麼選擇?如何存儲密碼以備後用?
就我而言,我的應用程序將有權訪問管理員帳戶,該帳戶將能夠使用模擬來處理用戶的日曆。我需要存儲此管理員帳戶的密碼,以便在稍後使用Exchange服務器進行身份驗證時使用它。我不打算使用EWS託管API。
我有一個用戶創建了一個具有類似要求的日曆應用程序。默認情況下,全局擁有這些權限的帳戶是可怕的,不推薦。模擬角色由需要訪問應用程序以減少風險範圍的部門授予。不過,如果你需要這種全球範圍內,這裏是我推薦的緩解賬號/密碼曝光:
限制賬戶功能僅Exchange服務。僅需要郵箱訪問和模擬角色的EWS服務帳戶不需要本地登錄和其他常規域用戶權限等功能。在這種情況下,帳戶無法登錄到計算機,也無法用於RDP。這限制了惡意使用的風險。
用戶/密碼可以存儲在您的應用程序數據庫中,連接字符串也可以存儲在應用程序之外,這裏有很多:https://security.stackexchange.com/questions/22817/how-to-encrypt-database-connection-credentials-on-a-web-server並在數據庫中加密密碼;進一步閱讀:http://www.darkreading.com/safely-storing-user-passwords-hashing-vs-encrypting/a/d-id/1269374
限制數據庫服務器和管理訪問。如果數據庫服務器在組之間共享,則這是一個比它應該是更大的問題。審覈數據庫服務器訪問,並重新限制廚房中廚師數量過多。數據庫服務器也不應該直接被用戶網絡訪問,但這可能是一個更大的問題來解決。
限制對應用程序的訪問。如在,它是外部可用還是僅在您的外圍可用?無論採用哪種方式,應用程序還應包含僅使用Kerberos或其他SSL身份驗證進行訪問的身份驗證,確保應用程序不能用於阻止EWS服務遭受過度訪問。
在Exchange上爲此用戶創建一次性限制策略,並相應地進行分配以防止應用程序打破EWS或限制常規用戶功能。這是黑莓管理員如果不遵循建議就學會了艱難的方式。當BES服務器不能正確拆卸連接時,Web服務將開始丟棄有效的客戶端請求。因此,BES必須指示用戶爲各種Exchange功能創建一次性限制策略。我爲創建我的EWS應用程序的用戶做了同樣的事情。幾次它救了我。
真的會歸結爲良好的應用程序設計和協調與Exchange團隊的要求。
不要的:
希望這有助於。