Вопрос или проблема
У меня есть некоторые проблемы и путаница с 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. Решения
-
Поиск по всему дереву: Попробуйте изменить базовый 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)'
-
Проверка существования UID: Выполните команду, чтобы получить всех пользователей и проверьте наличие атрибута
uid
у целевого пользователя:ldapsearch -x -D user -w pass -H ldap://x.x.x.x:636 -b 'ou=Users,dc=example,dc=com' '(objectClass=*)'
-
Убедитесь, что как
uid
, так и email идентичны: Иногда в системах может быть так, что uid может быть отличен от части email. Убедитесь в их соответствии и корректной настройке. -
Действенной отладкой прав пользователя: Проверьте и предоставьте права доступа для всех подструктур в LDAP.
4. Заключение
Решение вашей проблемы требует глубокого анализа структуры данных и свойств пользователей. Правильная организация запросов и использование базы данных LDAP в более широкой контекстной области помогут вам правильно взаимодействовать с пользователями на основе UID.
Если у вас есть дополнительные вопросы или вам требуется помощь в нашем процессе отладки, не стесняйтесь обращаться за дополнительной помощью.