Linux LDAP 查询 AD:缺少组成员

Linux LDAP 查询 AD:缺少组成员

执行 LDAP 查询时,我的 LAN 上的两个不同的 Linux 服务器(CentOS 和 Ubuntu)无法看到 AD 组的某些成员。

我们正在设置一个可以使用 LDAP 进行身份验证的软件设备。为了限制可以访问该设备的内部用户数量,我在 AD 中创建了一个“filetransfer”组,并向其中添加了 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 个。

我已删除并重新创建该组;没有任何效果。

我已将新的测试用户帐户添加到该组,但即使周末离开后他们也不会出现。

我知道域名正在正确同步,因为只要我删除一个“可见”用户 - LDAP 查询就会反映两个 Linux 服务器上的更改。

有人能解释一下这种奇怪的现象吗?

答案1

正确。这些是直接组成员 - 不是嵌套的。

解决我的问题的临时方法是使用管理帐户执行 LDAP 查询。

不知何故,我使用的通用帐户无法读取某些 AD 对象(LDAP 查询帐户没有权限read group membership) - 将该权限添加到我的通用 LDAP 查询帐户可永久解决该问题。

答案2

问题不仅仅是 Linux LDAP 对 Active Directory 的查询。Java LDAP 和 Powershell AD 查询也会出现此问题。在这些情况下,对于某些 AD 用户,无法查询成员属性并获取任何结果。同样,用于查询的帐户没有读取群组成员信息相关 AD 用户的权限。

例如,如果查询用户对用户“ptest”没有正确的权限,则使用 AD 查询用户“ptest”不会得到任何结果。(否则通常会得到许多以“CN”开头的行,显示“ptest”所属的组)。

Get-ADUser ptest -Properties * | Select-Object -ExpandProperty MemberOf

相关内容