Я хотел бы создать запрос LDAP, чтобы найти всех пользователей, которые входят в группу «Пользователи Google Apps» (краткое имя: googleappsusers) на моем сервере OS X 10.9. Когда я запускаю следующий запрос в Google Apps Directory Sync (GADS), он возвращает ноль пользователей, несмотря на то, что у меня действительно есть пользователь в группе googleappsusers.
(&(objectCategory=users)(memberOf=cn=googleappsusers,cn=groups,dc=nyc1,dc=domain,dc=com))
Обычно я использую браузер Softerras LDAP для просмотра деревьев LDAP, чтобы быстрее найти правильный синтаксис / пути. Есть много бесплатных браузеров ldap, это просто тот, который я где-то подобрал и не стал менять.
Похоже, есть несколько альтернатив для osx, если у вас есть клиент Mac: http://en.m.wikipedia.org/wiki/List_of_LDAP_software
Apple Open Directory не использует атрибут пользователя memberOf (OSX Server 10.7.5).
Вместо этого он полагается исключительно на атрибут группы memberUid для перечисления пользователей, которые являются членами данной группы. Следовательно, нельзя определить членство в группе пользователей путем запроса объекта пользователя, но вместо этого необходимо перечислить все группы для атрибутов memberUid, соответствующих этому пользователю, если кто-то желает получить полный список членства в группах конкретного пользователя.
Конечно, можно изменить схему, добавив атрибут memberOf, но затем необходимо также выполнить необходимую работу по поддержанию синхронизации значений атрибута memberUid группы и значений атрибута memberOf пользователя.
В этом отличие от реализаций ldap, которые поддерживают атрибут пользователя memberOf и содержат механизмы для синхронизации значений пары атрибутов (Microsoft Active Directory, OpenLDAP с наложением memberOf).
В [Руководстве администратора Google Apps Directory Sync] [1], стр. 28 говорится, что:
There are three ways to mark your Google Apps users in LDAP:
• OU: Set up an organizational unit (OU) and move Google Apps users into that unit.
• Group: Create a new group in LDAP, and add Google Apps users as a member of that group.
• Custom Attribute: Create a custom attribute for your users, and set that attribute for new users.
Я предполагаю, что вы могли бы решить задачу с помощью любого из них, но запрос у пользователей memberOf работает только в том случае, если вы сами добавляете атрибут memberOf к своим пользовательским объектам. Его следует рассматривать как настраиваемый атрибут с открытым каталогом.
То, что некоторые атрибуты в объекте ldap пусты, не является большой причиной для беспокойства, это просто означает, что они включены в схему ldap, но их значения не были установлены для объекта ldap. Вы бы увидели подобное положение вещей в любой нестандартной реализации ldap.