我們目前在我們的數據庫中存儲我們網絡應用程序的用戶以及密碼的哈希/鹽。當創建用戶並設置其密碼並存儲在數據庫中的用戶表中時計算散列值。您可以計算Active Directory使用的密碼哈希值嗎?
創建用戶帳戶後的一段時間,我們可能希望在我們的域中創建一個Windows帳戶,並希望能夠設置域用戶的密碼,以便它與用戶用於登錄的密碼相同進入網絡應用程序。由於我們不保存純文本版本的密碼,因此我們無法在創建密碼時將其發送給AD。
我想要解決這個問題的一種方法是,計算AD在用戶首次設置密碼時使用的所有不同密碼哈希值,然後在創建用戶時以某種方式在AD中設置記錄。
- 如何使用.Net創建散列(我認爲它們是MD4,MD5和DES)?
- 您可以繞過UserPrincpal.SetPassword創建密碼,並進行其他調用以直接設置AD存儲的哈希值嗎?
似乎應該有辦法做到這一點,因爲MS有工具可以將AD從AD密碼同步到Azure用戶。
有趣的問題,但我認爲這隻會在你使用與Windows相同的鹽時才起作用。從安全角度來看:在兩個系統上使用相同的密碼是個好主意嗎?我會說你正在尋找的是解決方案上的單一標誌 – Marged
據我所知,問題在於,Windows在單點登錄方面表現不佳,除非它是登錄的「單一」點。不知何故MS有工具來同步密碼,所以我相信它一定是可能的。 – bpeikes
根據您的Web應用程序在哪裏運行,您可以使用各種技術的SSO:SAML,Kerberos,證書。但請不斷嘗試實施同步方法,並且不要忘記這可能具有的安全隱患。 SSO中的第一個S有時比單個更「無聲」;-) – Marged