2017-05-16 75 views
2

我在.net中使用ldap查找時遇到了一些問題,並希望有人能夠闡明LdapConnection.SendRequest()如何在具有多個域控制器的AD中工作Windows事件日誌中的LdapConnection.SendRequest()問題

有點背景。

我們使用AD/LDAP連接導入用戶信息到我們的系統,當用戶登錄。 我們使用一個單一的廣告帳戶「cAdmin」綁定到AD那麼我們將採取已登錄用戶的用戶名並在該用戶名上執行ldap搜索。如果找到用戶,我們會將一些細節從廣告中複製到我們的系統中。

這很好,已經做了多年。但是當用戶登錄(並且我們查找用戶)時,客戶已經注意到事件日誌中有大量的呼叫與他們的域控制器聯繫。我只希望在這裏打一個電話,而我們的測試系統和其他客戶端只有一個。但似乎有最初的呼叫,然後6或7更多的第二個域控制器的帳戶名稱爲'c'(而不是cAdmin)

客戶端在其域控制器上具有負載平衡。

他們擔心這是某種病毒或安全風險,我很難證明它不是。

我們不能在這裏重現問題。

第一第一連接是如預期

=================================

使用顯式憑證嘗試登錄。

主題:

Security ID:  NETWORK SERVICE 

Account Name:  TRxxxxxxxx$ 

Account Domain:  XXX 

Logon ID:  0x3E4 

Logon GUID:  {00000000-0000-0000-0000-000000000000} 

帳戶其憑據使用:

Account Name:  cAdmin 

Account Domain:  STUDENT.XXX.UK 

Logon GUID:  {9c7e24da-6c6b-43d6-b222-48923be0c224} 

目標服務器:

Target Server Name: AD1.student.XXX.uk 

Additional Information: ldap/AD1.student.XXX.uk 

進程信息:

Process ID:  0x1520 

Process Name:  C:\Windows\SysWOW64\inetsrv\w3wp.exe 

網絡信息:

Network Address: - 

Port:   - 

當一個進程試圖通過明確指定該帳戶的憑據登錄的帳戶時生成此事件。這通常發生在批處理配置中,例如計劃任務或使用RUNAS命令時。

============================================== ==== 第二個連接,'c'顯示爲這個帳戶重複多達7次

======================= =====================

嘗試使用顯式憑據進行登錄。

主題:

Security ID:  NETWORK SERVICE 

Account Name:  TRxxxxxx$ 

Account Domain:  XXX 

Logon ID:  0x3E4 

Logon GUID:  {00000000-0000-0000-0000-000000000000} 

帳戶其憑據使用:

Account Name:  c 

Account Domain:  

Logon GUID:  {00000000-0000-0000-0000-000000000000} 

目標服務器:

Target Server Name: AD2.student.XXX.uk 

Additional Information: AD2.student.XXX.uk 

進程信息:

Process ID:  0x1520 

Process Name:  C:\Windows\SysWOW64\inetsrv\w3wp.exe 

網絡信息:

Network Address: - 

Port:   - 

當一個進程試圖通過明確指定該帳戶的憑據登錄的帳戶時生成此事件。這通常發生在批處理配置中,例如計劃任務或使用RUNAS命令時。

============================================== =======

如果任何人有任何建議或在這方面的經驗,這將不勝感激。

謝謝。

+0

更新:看來以後的事件日誌條目匹配組數量的用戶中的一員,那麼我們做一個查找每個組以找出每個組所在的組,以便我們可以導入整個樹。只是不知道爲什麼它會轉到輔助AD並記錄爲帳戶名稱'C' –

回答

1

我遇到同樣的問題。 Wireshark顯示bindRequest中的用戶名從相當隨機的雙字節編碼變爲四字節編碼。

例如 「克雷格」看起來像這樣在數據包時成功:C\0r\0a\0i\0g\0

在以後的bindRequests 「克雷格」的模樣C\0\0\0r\0\0\0a\0\0\0i\0\0\0g\0\0\0

在服務器日誌的用戶名是「C」,因爲在服務器上的字符串函數正確解釋C\0\0\0作爲空字符結尾的1個字符的Unicode字符串。

看起來像一個.net的錯誤,在我的經驗可能是通過SendRequest觸發利用PageResultRequestControl