深度剖析修改AD使用者密碼的資料同步機制

2021-09-05 06:24:42 字數 2247 閱讀 9408

該問題已解決,詳見《再度剖析ad賬戶新舊密碼同時可用的問題》

現象:

意外發現乙個很奇異的現象,使用者在改掉自己ad賬號的密碼之後,新密碼立即可用,但舊密碼也同樣可用。

測試:

為了了解這個問題的本質,我做了很多的測試,發現這個問題確實普遍存在,而且新舊密碼都可以使用的時間,精確的控制在整整5分鐘,一秒不多,一秒不少。

為盡可能排除其他因素的干擾,每次密碼修改過程都在dc上進行。總共測試的dc有3臺,dc01、dc02為同一站點,其中dc01為pdc**器,另外一台為外地站點的dc03。為提高效率,用ws-*寫了乙個查詢介面,用於返回「ok」,或者「incorrect」值,來表示密碼正確或者錯誤。旁邊開啟windows自帶的始終,精確到秒進行觀察。

先來說說站點內測試的情況。

測試賬戶原始密碼為「11」,輸入密碼「11」返回結果「ok」,輸入密碼「22」返回結果「incorrect」。

在dc02上修改密碼為「22」,輸入密碼「22」返回結果「ok」,輸入密碼「11」同樣返回結果「ok」。

不斷嘗試密碼「11」,均返回「ok」結果。在5分鐘之後,返回結果變為「incorrect」。

在dc01上修改密碼為「33」,輸入密碼「33」返回結果「ok」,輸入密碼「22」仍然返回結果「ok」。

與之前一樣,不斷嘗試密碼「22」,均返回「ok」結果。5分鐘之後,返回結果變為「incorrect」。

值得注意的是,如果同時在dc01、dc02上修改掉密碼,那麼舊密碼會立刻失效。

站點間的情況大體

相當,我連線本地ad站點進行查詢,dc隨機,修改密碼操作在外地的dc03上進行。

為更清楚的說明問題,下圖是adsi資訊的截圖,從左到右分別是dc01、dc02、dc03三颱的adsi屬性選項。

測試結果,和站點內進行測試基本一致,但有兩點不同。

第一點,在dc03上進行密碼修改以後,大約要30-40秒左右,新密碼才能返回「ok」結果,這期間舊密碼是可用的。從上圖可以看出,在dc03修改的密碼,同步到dc01時,用去了40秒時間,然後10秒之後,被同步到了dc02。我感覺我當時的ws-*是連到dc02進行的查詢,因為我當時看到開始返回「ok」值的時間是26分27秒。

第二點,舊密碼仍然可用的時間還是5分鐘整,不過這次更能發現問題,因為從時間計算上表明,這個5分鐘的時間,不是從密碼被同步到那個與客戶端連線到的dc02開始算起。而是從修改密碼的dc03的25分36秒開始算起。整整5分鐘,一秒不多,一秒不少。這一點,在站點內測試時,是沒有表現出來的。因為兩台dc處於同一網路,頻寬很高,網路效率很高。所以在我修改使用者密碼是,兩台dc的adsi所顯示出來的時間是相同的。

深度分析

經過測試,我們可以得知,雖然ad密碼修改會立即觸發資料同步。但是由於網路問題,會造成一定延時。(雖然是廢話,但至少還不是屁話)

並且經過很多次的測試,我們可以分析出這樣一條有關密碼修改後的ad同步資料流向。

首先,使用者密碼發生修改以後,無論是直接在dc上操作,還是通過客戶端進行。修改的密碼,收到密碼修改的dc會立即觸發更新,但並不是與所有的dc,而只是域內的pdc**器。

然後,使用者登陸時會使用新密碼,如果該請求提交到的那個dc,即不是pdc**器也不是提交密碼修改的那台dc的情況下,這台dc肯定沒有得到最新的修改後的密碼,所以它會發現該使用者提交的密碼不正確。

但此刻該dc並沒有立刻拒絕使用者的驗證請求,而是去請示ad中的pdc**器。這時pdc**器已經收到了來自與另一dc所提交的經過修改的最新密碼,pdc發現,使用者此刻提交的請求,與最新的密碼是一致的。於是通知之前那台dc放行。

而為什麼會存在乙個5分鐘的時間,新舊密碼同樣可用的的情況。在進行站點內測試時,我曾想過應該是快取。不過現在看來,應該不能算是快取。準確來講,應該是由發起密碼更改的那台dc,為舊密碼開啟了乙個最後生存時間,而這個時間,就是5分鐘整。不過這點也只是我自己的猜測,因為生存時間的概念,與之前同時修改兩台dc後,舊密碼立刻失效的情況,相違背。

疑惑

分析到這裡,對於密碼修改後,各個dc之間是如何進行同步的機制,也算比較清晰的了解了。 但是這裡還是有最後乙個疑問。。

這個「5分鐘」到底為什麼,它從何而來,能否修改,能否去掉。。

為此已經向微軟gtsc申請了技術支援。其實這也不是什麼大問題,主要是討個說法。

有人會問,說法很重要麼?我說,當然重要。。因為最初意外發現這個問題的人,不是別人,正是我們it的老大。。開大會的時候特地提出來,這要沒有個說法,我可沒法交代啊。。

深度剖析修改AD使用者密碼的資料同步機制

該問題已解決,詳見 再度剖析ad賬戶新舊密碼同時可用的問題 現象 意外發現乙個很奇異的現象,使用者在改掉自己ad賬號的密碼之後,新密碼立即可用,但舊密碼也同樣可用。測試 為了了解這個問題的本質,我做了很多的測試,發現這個問題確實普遍存在,而且新舊密碼都可以使用的時間,精確的控制在整整5分鐘,一秒不多...

Web頁面實現AD使用者修改密碼

1.部署了一台server2003,將伺服器c windows system32 inetsrv iisadmpwd 拷貝了出來 2.然後部署一台server2008,安裝了ad服務。將03拷貝出來的資料夾複製到了c windows syswow64 inetsrv檔案下 3.在server2008...

再度剖析AD賬戶新舊密碼同時可用的問題

上周五寫了一篇名為 深度剖析修改ad使用者密碼的資料同步機制 的文章,其中發現在修改了ad使用者密碼以後,5分鐘之內,新舊密碼同時可用的狀況。今天微軟gtsc的工程師換了兩撥人做技術支援,在不斷的嘗試過程當中,找到了答案。在他們不斷的給出解決辦法的時候,其中提供了一篇kb號為906305的文章。鏈結...