执行LDAP查询时,我局域网上的两个不同的Linux服务器(CentOS和Ubuntu)无法看到AD组的某些成员。
我们正在设置一个可以使用LDAP进行authentication的软件设备。 为了限制可以访问设备的内部用户的数量,我在AD创build了一个“文件传输”组,并为其添加了8个用户。
我曾尝试使用CentOS 6.5和Ubuntu 12.04.4执行以下LDAP查询:
ldapsearch \ "(memberof=CN=FileTransfer,OU=Security Groups,DC=domain,DC=local)" \ dn -x -W -D 'cn=ldapquery,ou=user accounts,dc=domain,dc=local' -LLL
结果如下:
dn: CN=Eva ,OU=User Accounts,DC=domain,DC=Local dn: CN=Simon ,OU=User Accounts,DC=domain,DC=Local dn: CN=Eric ,OU=User Accounts,DC=domain,DC=Local dn: CN=Ronald ,OU=User Accounts,DC=domain,DC=Local # refldap://ForestDnsZones.domain.Local/DC=ForestDnsZones,DC=domain,DC=Local # refldap://DomainDnsZones.domain.Local/DC=DomainDnsZones,DC=domain,DC=Local # refldap://domain.Local/CN=Configuration,DC=domain,DC=Local
AD组包含8个成员,但LDAP查询仅返回4个成员。
我删除并重新创build了该组。 没有快乐。
我已经为该组添加了新的testing用户帐户,即使在周末结束之后,他们也不会显示出来。
我知道该域正在同步,因为只要我删除了一个“可见”用户,LDAP查询就反映了这两个Linux服务器上的更改。
任何人都可以解释这个奇怪吗?
正确。 这些是直接的组员 – 不是嵌套的。
我的问题的临时解决scheme是使用pipe理帐户来执行LDAP查询。
某种程度上某些AD对象不能被我正在使用的通用帐户(LDAP查询帐户没有read group membership权限) read group membership – 添加到我的通用LDAP查询帐户的权利,永久解决了这个问题。
问题不仅仅是对Active Directory的Linux LDAP查询。 Java LDAP和Powershell AD查询也会发生。 在这些情况下,对于某些AD用户,也无法查询属性的成员并获得任何结果。 同样,用于查询的帐户对所涉及的AD用户没有读取组成员身份许可。
例如,如果查询用户对用户“ptest”没有正确的权限,那么使用AD查询用户“ptest”如下所示不会产生任何结果。 (否则通常会得到以“CN”开始的显示“ptest”所属组的行)。
Get-ADUser ptest -Properties * | Select-Object -ExpandProperty MemberOf