【问题标题】:LDAP search filter string and base DN syntax combination to get user with matching `sAMAccountName` when base DN's lowest elements are just Group CNs?当基本 DN 的最低元素只是组 CN 时,LDAP 搜索过滤器字符串和基本 DN 语法组合以获取匹配“sAMAccountName”的用户?
【发布时间】:2021-04-06 07:28:42
【问题描述】:

当目标基本 DN 的最低元素是组 CN(实际上不是用户/个人对象)时,是否有办法编写 LDAP 搜索过滤器字符串或基本 DN 语法以获取具有匹配 sAMAccountName 属性的用户?以前从未使用过 LDAP 查询,因此对如何执行此操作不是很了解。

有一个组 CN 的 AD 路径,例如...

DC=myorg,DC=local
    OU=datagroups
        OU=zones
            CN=group1
            CN=group2
            ...

...并且有两个参数可用于匹配登录字符串:

  • 将被python-ldap.search_s() function 接受为base arg 的单个基本DN(例如OU=zones,OU=datagroups,DC=myorg,DC=local)。
  • 一个搜索过滤器字符串,作用于该基本 DN,并返回一个与 sAMAccountName 匹配的单个用户/个人,该用户/个人将用作 python-ldap.search_s() function 中的 filterstr 参数。默认格式为'sAMAccountName={login}'

也试过

base_dn = OU=zones,OU=datagroups,DC=myorg,DC=local
search_filter = (&(sAMAccountName={login})(|(memberOf=CN=zone1,OU=zones,OU=datagroups,DC=myorg,DC=local)(memberOf=CN=zone2,OU=zones,OU=datagroups,DC=myorg,DC=local)))

无济于事。

有更多经验的人知道我该怎么做吗?我似乎对这种情况有什么误解(再说一次,我不经常使用 LDAP 查询)?

【问题讨论】:

  • 如果您有默认格式,为什么要更改它? {login}=sAMAccountName 回到前面。属性名在前。
  • @user207421 在我的代码中实际上是sAMAccountName={login}。不过我不知道这很重要,谢谢。我只是在这篇文章中以另一种方式写了它,因为再次不知道这很重要(编辑了这里的帖子以反映)。
  • 只要您指定子树搜索并且那些 memberOf 测试匹配,它应该可以工作。
  • @user207421 是的,我认为你是对的。问题是一个帖子有点过时了,因为我正在调试一些相关的东西,我认为这可能是潜在的问题,一旦完成就会更新(并希望得到答案)。

标签: ldap ldap-query python-ldap


【解决方案1】:

从其他人那里了解有关 LDAP 查询如何工作的更多信息后...

基本 DN 必须是找到您想要的对象而不是组的位置memberOfsAMAccountName 是用户对象的属性,因此您正在编写的查询是这样的......

“搜索OU=zones,OU=datagroups,DC=myorg,DC=local 以查找具有{login} 的sAMAccountName 属性和CN=zone1,OU=zones,OU=datagroups,DC=myorg,DC=localCN=zone2,OU=zones,OU=datagroups,DC=myorg,DC=localmemberOf 属性的任何对象”。

组包含一个成员属性,该属性将为您提供所有用户 DN,但它们通常不包含 sAMAccoutName,因此您需要获取每个组的所有成员,然后查找每个成员的对象属性。

因此,我将我的 baseDN 更改为 DC=myorg,DC=local 以使其在整个域中搜索对象。

【讨论】:

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