解决方案 1:memberOf(在 AD 中)存储为 distinctNames 列表。您的过滤器需要类似于:
(&(objectCategory=user)(memberOf=cn=MyCustomGroup,ou=ouOfGroup,dc=subdomain,dc=domain,dc=com))
如果您还没有专有名称,您可以使用以下命令进行搜索:
(&(objectCategory=group)(cn=myCustomGroup))
例子:
filter = "(&(objectClass=user)(sAMAccountName=#{username})(memberof=CN=group-name,OU=Linux Groups,OU=Linux))"
此示例列出了用户所属的所有组。
更多细节参考这个线程
解决方案 2:使用现代ldapsearch命令行工具的示例:
ldapsearch --port 1389 --baseDn 'ou=people,dc=example,dc=com' \
--sizeLimit 3 --searchScope one --bindDn 'cn=directory manager' \
--bindPasswordFile ~/.pwdFile '(uid=user.0)' isMemberOf
dn: uid=user.0,ou=people,dc=example,dc=com
isMemberOf: cn=Dynamic Home Directories,ou=groups,dc=example,dc=com
isMemberOf: cn=bellevue,ou=groups,dc=example,dc=com
isMemberOf: cn=shadow entries,ou=groups,dc=example,dc=com
isMemberOf: cn=persons,ou=groups,dc=example,dc=com
此搜索响应表明user.0是所列组的成员。以上是从 LDAP 角度处理组成员身份的一种方法的一般说明。
另请参阅此链接以获取更多详细信息。