【问题标题】:LDAP query to return userLDAP 查询返回用户
【发布时间】:2016-04-15 22:22:55
【问题描述】:

我正在尝试从专有名称检索使用 LDAP 的 Active Directory 用户记录。这是我要发送的查询...

(&(objectCategory=person)(objectClass=user)(CN=George Hutchins,OU=Contractors,DC=MYCO,DC=LOCAL))

但是,这不会返回任何结果。

如果我使用...

(&(objectCategory=person)(objectClass=user)(CN=George Hutchins))

我得到了返回的记录。我只会使用后一个查询,但如果有两个 George Hutchins,那么我将获得 2 条记录,而不是我正在寻找的那个。

有没有办法查询以获取具有专有名称的确切用户 (CN=George Hutchins,OU=Contractors,DC=MYCO,DC=LOCAL)?顺便说一句,我知道这个字符串是正确的,因为我从 Active Directory 中的组记录(成员属性)中提取了它。

【问题讨论】:

  • 如果有两个 George Hutchens 并且他们都是承包商,这无论如何也救不了你。无论在 DIT 中的位置如何,您都必须确保条目是唯一的。这意味着使用用户的独特信息进行搜索,例如 UID、他的电子邮件、“屏幕名称”等。

标签: active-directory ldap


【解决方案1】:

完全可分辨的名称在 LDAP 中始终是唯一的。

一个简单的查询,类似于:

(&(objectCategory=person)(objectClass=user))

并将搜索库设置为:

(CN=George Hutchins,OU=Contractors,DC=MYCO,DC=LOCAL)

搜索范围为:BASE (0) 在您的Search Request 内应该可以工作。

-吉姆

【讨论】:

    【解决方案2】:

    您可以使用distinguishedName 属性专门查询:

    (distinguishedName=CN=George Hutchins,OU=Contractors,DC=MYCO,DC=LOCAL)

    您的原始查询不起作用的原因是因为这部分:(CN=George Hutchins,OU=Contractors,DC=MYCO,DC=LOCAL)。要求 AD 返回的是具有 CN 属性且值为 George Hutchins,OU=Contractors,DC=MYCO,DC=LOCAL 的 LDAP 对象。但是,他的CN 只会是George Hutchins

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-12
      • 1970-01-01
      相关资源
      最近更新 更多