当基本 DN 的最低元素只是组 CN 时,LDAP 搜索过滤器字符串和基本 DN 语法组合以获取匹配“sAMAccountName”的用户?
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(实际上不是 users/Person 对象)?以前从未使用过 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 的搜索过滤器字符串和 return 具有匹配
sAMAccountName
的单个 user/Person 将用作 filterstr
arg python-ldap.search_s()
function。默认格式为 '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 查询)?
从其他人那里了解更多有关 LDAP 查询如何工作的信息后...
基本 DN 需要找到您想要的对象而不是组。 memberOf
和 sAMAccountName
是用户对象的属性,因此您正在编写的查询类似于...
"搜索 OU=zones,OU=datagroups,DC=myorg,DC=local
具有 {login} 属性 sAMAccountName
和 CN=zone1,OU=zones,OU=datagroups,DC=myorg,DC=local
memberOf
属性 的任何对象或 CN=zone2,OU=zones,OU=datagroups,DC=myorg,DC=local
".
组包含一个成员 属性,它将为您提供所有用户 DN,但它们通常不包含 sAMAcoutName,因此您需要获取每个组的所有成员,然后查找对象属性每个成员。
因此我将 baseDN 更改为 DC=myorg,DC=local
以使其在整个域中搜索对象。
当目标基本 DN 的最低元素是组 CN(实际上不是 users/Person 对象)?以前从未使用过 LDAP 查询,因此不太了解如何执行此操作。
有组 CN 的 AD 路径,例如...
DC=myorg,DC=local
OU=datagroups
OU=zones
CN=group1
CN=group2
...
...并且有两个参数可用于匹配登录字符串:
- 将被
python-ldap.search_s()
function. 接受为 - 作用于该基本 DN 的搜索过滤器字符串和 return 具有匹配
sAMAccountName
的单个 user/Person 将用作filterstr
argpython-ldap.search_s()
function。默认格式为'sAMAccountName={login}'
base
arg 的单个基本 DN(例如 OU=zones,OU=datagroups,DC=myorg,DC=local
)
也试过
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 查询)?
从其他人那里了解更多有关 LDAP 查询如何工作的信息后...
基本 DN 需要找到您想要的对象而不是组。 memberOf
和 sAMAccountName
是用户对象的属性,因此您正在编写的查询类似于...
"搜索 OU=zones,OU=datagroups,DC=myorg,DC=local
具有 {login} 属性 sAMAccountName
和 CN=zone1,OU=zones,OU=datagroups,DC=myorg,DC=local
memberOf
属性 的任何对象或 CN=zone2,OU=zones,OU=datagroups,DC=myorg,DC=local
".
组包含一个成员 属性,它将为您提供所有用户 DN,但它们通常不包含 sAMAcoutName,因此您需要获取每个组的所有成员,然后查找对象属性每个成员。
因此我将 baseDN 更改为 DC=myorg,DC=local
以使其在整个域中搜索对象。