Я использую nss и openldap в Linux, чтобы получить список записей passwd из активного каталога. Я получаю всех пользователей из вложенной группы, выполняя
nss_base_passwd OU=peopleOU,DC=x?sub?memberof:1.2.840.113556.1.4.1941:=cn=Group1,OU=groupsOU,DC=x
Мне пришла идея использовать 1.2.840.113556.1.4.1941 от http://msdn.microsoft.com/en-us/library/windows/desktop/aa746475%28v=vs.85%29.aspx
Однако производительность действительно плохая. Я предполагаю, что сервер LDAP связывает каждую группу каждого пользователя, чтобы узнать, входят ли они в группу. Есть ли более быстрый способ сделать это? Я полагаю, что было бы быстрее найти членов группы, чем проверять каждого пользователя, входят ли они в группу, но как я могу сделать для этого фильтр?
Кроме того, имена вложенных групп в каталоге могут быть объединены, т. Е. memberof=cn=Group1*,OU=groupsOU,DC=x
также должен дать мне то, что я хочу, но это вернет 0 пользователей.