2017-05-16 74 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