openldap + активный каталог + вложенные группы + nss
Я использую 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 пользователей.