我想对用户进行ldap搜索以获取他们及其所有继承的组。 例如,我这样做是为了获取用户的组:
ldapsearch \
-h DomainServer \
-W \
-b "cn=users,dc=my,dc=domain,dc=com" \
-s sub "(cn=My Name*)" memberof
我知道这里描述了这个LDAP_MATCHING_RULE_IN_CHAIN:https://msdn.microsoft.com/en-us/library/windows/desktop/aa746475(v=vs.85).aspx 但我不知道如何在这种情况下使用它以及在哪里使用它。我把它放在我的用户名之前的成员和前面的末尾,这给了我没有结果或坏搜索过滤器。
ldapsearch \
-h DomainServer \
-W \
-b "cn=users,dc=my,dc=domain,dc=com" \
-s sub "(memberof:1.2.840.113556.1.4.1941:=cn=My Name*)" memberof
result: 0 Success
ldapsearch \
-h DomainServer \
-W \
-b "cn=users,dc=my,dc=domain,dc=com" \
-s sub "(cn=My Name*)" memberof:1.2.840.113556.1.4.1941:
result: 0 Success
知道如何正确使用它吗?谢谢!
编辑:过滤器现在的工作原理如下:
(member:1.2.840.113556.1.4.1941:=CN=My User,CN=Users,DC=my,DC=domain,DC=com)
但实际上我想让所有用户都能使用它,而不仅仅是一个,所以这样:
(member:1.2.840.113556.1.4.1941:=CN=*,CN=Users,DC=my,DC=domain,DC=com)
但那又是一个糟糕的搜索过滤器:( 我的搜索库是一个OU,所以我只获得了一些特定的LDAP组
OU=SomeOrganizaionalUnit,OU=SystemAccess,OU=Groups,DC=my,DC=domain,DC=com
这一切都适用于一个特定用户,但不适用于任何用户。
答案 0 :(得分:1)
查找All Groups a User is a member of including Nested Groups
已知此过滤器有效: (成员:1.2.840.113556.1.4.1941:=(CN =用户名,CN =用户,DC = YOURDOMAIN,DC = NET))
AFIK,它只适用于Microsoft Active Directory。
此外,AFIK,在单个LDAP查询中,您只能获得All Groups a User is a member of including Nested Groups或Resolves all members (including nested) security groups (requires at least Windows 2003 SP2)这样的过滤器:
(memberOf:1.2.840.113556.1.4.1941:=CN=GroupOne,OU=Security Groups,OU=Groups,DC=YOURDOMAIN,DC=NET)