Фильтр LDAP Google Workspace по UID в многодоменной структуре

Вопрос или проблема

У меня есть некоторые проблемы и путаница с Google Workspace LDAP и LDAP в целом.

У меня есть организационная единица под названием example.com. Внутри этой организационной единицы в Google у меня есть подединицы с названиями example.co, example.es и example.it. Структура выглядит следующим образом:

* example.com
 ** example.co
 ** example.es
 ** example.it

Проблема в том, что при использовании пути привязки "ou=Users,dc=example,dc=com" и фильтра "(uid=user1)" — который является пользователем с атрибутом [email protected] — пользователь находится. Но если я ищу "(uid=user2)" — у которого есть атрибут [email protected] — его не находят :/ … то же самое происходит с “co” и “es”.

Сначала я думал, что это связано с тем, что путь привязки не включает "dc=es" или "dc=it". Если я попробую с "ou=Users,dc=example", это все равно не сработает. И что действительно сбивает с толку, так это то, что если я использую путь привязки "ou=Users,dc=example,dc=com" и фильтрую по "[email protected]", это дает результат! Я не понимаю, почему это сработало с почтовым атрибутом, но не с uid.

Клиент Google VPN имеет разрешения на просмотр всех атрибутов во всех OU.

Это часть миграции от очень устаревшей системы, и сложно заставить некоторые приложения искать по полю электронной почты; нам нужно, чтобы они искали по uid.
(В настоящее время в старой системе OpenLDAP, которую мы имеем, поиски уважают UID, а не электронную почту.)

Кто-нибудь знает, что я мог упустить и почему это работает с почтой? Любая помощь будет признательна!

Для всех моих тестов я использую ldapsearch. Например:

  • ldapsearch -x -D user -w pass -H ldap://x.x.x.x:636 -b 'ou=Users,dc=example,dc=com' 'uid=user2' не работает
  • ldapsearch -x -D user -w pass -H ldap://x.x.x.x:636 -b 'ou=Users,dc=example,dc=com' '[email protected]' работает

Спасибо!

Мне нужно выполнять поиски по всей моей корневой организационной единице (OU), не учитывая адреса электронной почты, просто обращаясь к UID.

Ответ или решение

Фильтрация LDAP по UID в многоуровневой структуре Google Workspace

При работе с Google Workspace и LDAP могут возникать различные сложности, особенно в условиях многоуровневой организационной структуры, как это описано в вашем вопросе. Давайте подробно рассмотрим проблему и предложим решения.

1. Понимание структуры Google Workspace LDAP

В вашем случае у вас есть корневое организационное подразделение example.com, в котором находятся подструктуры example.co, example.es и example.it. Это ключевой момент, так как поиск в LDAP может зависеть от того, в каком именно пространстве имен вы выполняете запрос.

2. Проблемы с поиском по UID

Вы столкнулись с ситуацией, когда запрос по фильтру (uid=user2) не возвращает результата, в то время как поиск по атрибуту email работает корректно. Причины этого поведения могут быть следующими:

  • Отсутствие атрибута UID: Возможно, не все пользователи созданы с атрибутом uid в разных подструктурах. Убедитесь, что для всех пользователей, которых вы ищете, задан этот атрибут.

  • Недостаточные права доступа: Несмотря на то что вы упомянули о праве доступа VPN-клиента, проверьте, действительно ли доступы настроены так, чтобы видеть всех пользователей в различных подструктурах.

  • Контекстный поиск: Когда вы выполняете запрос с -b 'ou=Users,dc=example,dc=com', система ищет только в указанной области. Если пользователя user2 нет в этой области, он не будет найден. Ваш запрос по email может работать, поскольку поиск по email может охватывать более широкий контекст.

3. Решения

  1. Поиск по всему дереву: Попробуйте изменить базовый DN на более общий, например, dc=example,dc=com. Это позволит системе искать и в подчислах внутри example.com.

    ldapsearch -x -D user -w pass -H ldap://x.x.x.x:636 -b 'dc=example,dc=com' '(uid=user2)'
  2. Проверка существования UID: Выполните команду, чтобы получить всех пользователей и проверьте наличие атрибута uid у целевого пользователя:

    ldapsearch -x -D user -w pass -H ldap://x.x.x.x:636 -b 'ou=Users,dc=example,dc=com' '(objectClass=*)'
  3. Убедитесь, что как uid, так и email идентичны: Иногда в системах может быть так, что uid может быть отличен от части email. Убедитесь в их соответствии и корректной настройке.

  4. Действенной отладкой прав пользователя: Проверьте и предоставьте права доступа для всех подструктур в LDAP.

4. Заключение

Решение вашей проблемы требует глубокого анализа структуры данных и свойств пользователей. Правильная организация запросов и использование базы данных LDAP в более широкой контекстной области помогут вам правильно взаимодействовать с пользователями на основе UID.

Если у вас есть дополнительные вопросы или вам требуется помощь в нашем процессе отладки, не стесняйтесь обращаться за дополнительной помощью.

Оцените материал
Добавить комментарий

Капча загружается...