Два ОУ и без дерева

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

У меня есть две OU: 1.People 2.newOU. Мой dc это nodomain. У меня есть следующий поиск, и всё в порядке:

root@debian:~/ldif# ldapsearch  -c  -Y EXTERNAL  -H ldapi:///  -b dc=nodomain -D  cn=admin,dc=nodomain -LLLQ 
dn: dc=nodomain
objectClass: top
objectClass: dcObject
objectClass: organization
o: nodomain
dc: nodomain

dn: uid=mohsen,ou=People,dc=nodomain
uid: mohsen
cn: Pahlevanzadeh
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
shadowLastChange: 20121
loginShell: /usr/sbin/csh
uidNumber: 130
gidNumber: 137
homeDirectory: /home/mohsen
gecos: A good boy,,,

dn: ou=newOU,dc=nodomain
objectClass: organizationalUnit
ou: newOU
description: Organizational Unit for Sales Department

dn: uid=naghmeh,ou=newOU,dc=nodomain
uid: naghmeh
cn: maleki
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
shadowLastChange: 20121
loginShell: /usr/sbin/csh
uidNumber: 130
gidNumber: 137
homeDirectory: /home/mohsen
gecos: A good boy,,,

У меня есть два uid: 1.mohsen под People. 2.naghmeh под newOU
Когда я выполняю поиск, как указано выше, но добавляю "ou=newOU" следующим образом:

ldapsearch  -c  -Y EXTERNAL  "ou=newOU" -H ldapi:///  -b dc=nodomain -D  cn=admin,dc=nodomain -LLLQ 

Я получаю следующий результат:

dn: ou=newOU,dc=nodomain
objectClass: organizationalUnit
ou: newOU
description: Organizational Unit for Sales Department

К сожалению, я не получил uid и другую информацию.
Как я могу получить доступ к другой информации через мою OU?

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

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

Теория

LDAP (Lightweight Directory Access Protocol) — это протокол, используемый для доступа и управления распределенными каталогами. Каталоги LDAP являются иерархическими структурами, в которых данные организованы в виде деревьев. Каждый узел дерева имеет уникальный DN (Distinguished Name), который указывает его местоположение в данной иерархии. Объекты в этих каталогах могут содержать различные атрибуты и принадлежать к множеству классов объектов.

При совершении поиска в LDAP, важно правильно указывать базу поиска (-b) и фильтры, чтобы получить нужные результаты. В отличие от реляционных баз данных, в LDAP запросы строятся на основе атрибутов и структурированной иерархии, а не на основе сложных SQL-запросов. Это упрощает доступ к данным, но требует понимания того, как должным образом использовать поисковые фильтры и спецификаторы поиска.

Пример

В вашем случае вы выполняете поиск в каталоге dc=nodomain и хотите получить не только организационную единицу (OU), но и пользователей внутри этой OU. Запрос, который вы использовали, должен быть настроен таким образом, чтобы не только находить соответствующую организационную единицу, но и включать дочерние элементы в поиск. Однако, в запросе:

ldapsearch -c -Y EXTERNAL "ou=newOU" -H ldapi:/// -b dc=nodomain -D cn=admin,dc=nodomain -LLLQ

используется фильтр "ou=newOU", который находит только организационную единицу newOU, но не загружает вложенные объекты (например, учетные записи пользователей).

Применение

Чтобы решить проблему и получить все объекты внутри newOU, необходимо использовать более подходящий фильтр и структуру запроса. Один из способов сделать это — использовать subtree поиск, который рекурсивно ищет внутри всех дочерних объектов от указанного базового DN.

Для выполнения поиска всех учетных записей в организационной единице newOU, вы можете использовать следующий запрос:

ldapsearch -c -Y EXTERNAL -H ldapi:/// -b ou=newOU,dc=nodomain -D cn=admin,dc=nodomain -LLLQ "(objectClass=*)"

Приведенный выше запрос устанавливает базовое DN как ou=newOU,dc=nodomain, что означает, что все результаты поиска будут ограничены этой организационной единицей и её дочерними элементами. Фильтр (objectClass=*) используется для выборки всех объектов, что позволяет получить и организационную единицу, и пользователей внутри неё.

Кроме того, если есть потребность обнаруживать только пользовательские записи внутри newOU, можно уточнить фильтр поиска, например:

ldapsearch -c -Y EXTERNAL -H ldapi:/// -b ou=newOU,dc=nodomain -D cn=admin,dc=nodomain -LLLQ "(objectClass=posixAccount)"

Этот фильтр (objectClass=posixAccount) позволит выбрать только те объекты, которые являются пользовательскими учетными записями, использующими класс объекта posixAccount.

Чтобы обеспечить более гибкие и успешные поиски в будущем, следует убедиться, что вы имеете четкое представление о структуре вашего LDAP-дерева и каких именно данных вы хотите достичь. Если возможны изменения в структуре объектов, это может потребовать соответствующих корректировок в запросе.

Таким образом, знание или понимание организации OU и иерархии каталогов поможет составлять поисковые команды, которые учитывают все сущности и элементы, которые вы хотите увидеть в результатах вашего запроса. Работа с LDAP может быть сложной при инициализации, но с опытом и правильным применением фильтров и структур она становится мощным инструментом для управления доступом и справочными данными в IT-инфраструктуре.

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

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