ldapsearch не получает записи err 32 (openldap) - PullRequest
0 голосов
/ 12 декабря 2018

У меня нет ответа, когда я делаю ldapsearch вот так.

> ldapsearch -x -D "uid=joe,ou=people,dc=example,dc=org" -w joe -b "ou=group,dc=example,dc=org" "(objectclass=*)"

# extended LDIF
#
# LDAPv3
# base <ou=group,dc=example,dc=org> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# search result
search: 2
result: 32 No such object

# numResponses: 1

Здесь есть журнал Openldap

5c10a31c conn=1029 fd=13 ACCEPT from IP=172.17.0.1:34710 (IP=0.0.0.0:389)
5c10a31c conn=1029 op=0 BIND dn="uid=joe,ou=people,dc=example,dc=org"     method=128
5c10a31c conn=1029 op=0 BIND dn="uid=joe,ou=people,dc=example,dc=org" mech=SIMPLE ssf=0
5c10a31c conn=1029 op=0 RESULT tag=97 err=0 text=
5c10a31c conn=1029 op=1 SRCH base="ou=group,dc=example,dc=org" scope=2 deref=0 filter="(objectClass=*)"
5c10a31c conn=1029 op=1 SEARCH RESULT tag=101 err=32 nentries=0 text=
5c10a31c conn=1029 op=2 UNBIND
5c10a31c conn=1029 fd=13 closed

это файл ldif для пользователя и группы

# People, example.org
dn: ou=people,dc=example,dc=org
ou: people
objectClass: organizationalUnit

# Groups, example.org
dn: ou=group,dc=example,dc=org
ou: group
objectClass: organizationalUnit

dn: uid=joe,ou=people,dc=example,dc=org
objectClass: person
objectClass: inetOrgPerson
uid: joe
cn: Joe Doe
sn: Doe
givenName: Joe
userPassword: joe
description: This is an example user

dn: cn=c3admin,ou=group,dc=example,dc=org
objectClass: groupOfNames
cn: c3admin
member: uid=joe,ou=people,dc=example,dc=org

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

Я использую osixia / docker-openldap: 1.2.2 для openldap.и он имеет автоматическую настройку для пользователя-администратора в «cn = admin, dc = example, dc = org»

docker run -p 389: 389 -p 689: 689 --name my-openldap-container --detach osixia / openldap: 1.2.2

Обновление

Выполнить поиск с фильтром элементов, после чего появилась ошибка.

ldapsearch -x -D "uid=joe,ou=people,dc=example,dc=org" -w joe -b "ou=group,dc=example,dc=org" "(member=uid=joe,ou=people,dc=example,dc=org)"
# extended LDIF
#
# LDAPv3
# base <ou=group,dc=example,dc=org> with scope subtree
# filter: (member=uid=joe,ou=people,dc=example,dc=org)
# requesting: ALL
#

# search result
search: 2
result: 32 No such object

# numResponses: 1

Выполнить поиск по базеЗатем DN получил ошибку.

ldapsearch -x -D "uid=joe,ou=people,dc=example,dc=org" -w joe -b "dc=example,dc=org" "(objectclass=*)"
# extended LDIF
#
# LDAPv3
# base <dc=example,dc=org> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# search result
search: 2
result: 32 No such object

# numResponses: 1

Сделал поиск с привязкой admin dn, затем получил 5 записей.ldapsearch -x -D "cn = admin, dc = example, dc = org" -w admin -b "ou = group, dc = example, dc = org" "(objectclass = )" # расширенный LDIF # #LDAPv3 # base с фильтром поддерева области видимости: (objectclass = ) # запрос: ALL #

# group, example.org
dn: ou=group,dc=example,dc=org
ou: group
objectClass: organizationalUnit

# admin, group, example.org
dn: cn=admin,ou=group,dc=example,dc=org
cn: admin
objectClass: groupOfNames
member: uid=john,ou=group,dc=example,dc=org

# john, group, example.org
dn: uid=john,ou=group,dc=example,dc=org
uid: john
givenName: Joe
description: This is an example user
sn: Doe
cn: Joe Doe
objectClass: person
objectClass: inetOrgPerson
userPassword:: am9obg==

# c3admin, group, example.org
dn: cn=c3admin,ou=group,dc=example,dc=org
objectClass: groupOfNames
cn: c3admin
member: uid=joe,ou=people,dc=example,dc=org

# c3viewer, group, example.org
dn: cn=c3viewer,ou=group,dc=example,dc=org
objectClass: groupOfNames
cn: c3viewer
member: uid=tom,ou=people,dc=example,dc=org

# search result
search: 2
result: 0 Success

# numResponses: 6
# numEntries: 5

1 Ответ

0 голосов
/ 12 декабря 2018

Ваш поиск просит вернуть записи "(objectclass = *)" ниже записи "ou = group, dc = example, dc = org".

Я предполагаю, что их нет.

Чтобы найти членов, которые входят в группу ou = group, dc = example, dc = org, используйте фильтр, подобный следующему: "(member = *)"

, чтобы найти все записи, использующие: Filter: "(objectclass = *)" Base (-b): "dc = пример, dc = org"

-jim

...