Поиск LDAP с фильтром пользовательских атрибутов - PullRequest
2 голосов
/ 15 марта 2019

У меня проблемы с поиском конкретной записи в дереве LDAP, учитывая фильтр, определенный для пользовательского атрибута.

Т.е. (поиск по samaccountname=jpa)

ldapsearch -x -D "CN=admin,DC=my,DC=com" -w admin -H ldap://localhost:10389 -b "ou=My Users,dc=my,dc=com" -s sub "samaccountname=jpa" делает не работа (не возвращает результата)

, тогда как (поиск sn=jpa):

ldapsearch -x -D "CN=admin,DC=my,DC=com" -w admin -H ldap://localhost:10389 -b "ou=My Users,dc=my,dc=com" -s sub "sn=jpa" работает

даже (проверка существования samaccountname):

ldapsearch -x -D "CN=admin,DC=my,DC=com" -w admin -H ldap://localhost:10389 -b "ou=My Users,dc=my,dc=com" -s sub "samaccountname=*" работает

Есть идеи, что тут может быть не так?Мое намерение состоит в том, чтобы найти данного пользователя, используя sub (samaccountname=jpa) filter

Мой конфиг (используя образ докера osixia / openldap):

схема:

attributetype ( 1.2.840.113556.1.4.221 NAME 'sAMAccountName'
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
    SINGLE-VALUE
    USAGE userApplications )

objectclass ( 2.5.6.30 NAME 'extendedUser'
    SUP person
    STRUCTURAL
    MUST ( sAMAccountName ) )

ACL:

dn: olcDatabase={1}mdb,cn=config
changetype: modify
delete: olcAccess
-
add: olcAccess
olcAccess: to * by * read

LDIF:

DN: OU=My Users,DC=my,DC=com
OU: My Users
objectClass: organizationalUnit

DN: CN=jpa,OU=My Users,DC=my,DC=com
CN: jpa
sn: jpa
sAMAccountName: jpa
objectClass: extendedUser
userPassword: xxx

1 Ответ

2 голосов
/ 25 марта 2019

Вам необходимо определить EQUALITY для вашего атрибута. В настоящее время LDAP не знает, как выполнить поиск по этому атрибуту.

attributetype ( 1.2.840.113556.1.4.221 NAME 'sAMAccountName'
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
    EQUALITY caseIgnoreMatch
    SINGLE-VALUE
    USAGE userApplications )

Спецификация схемы OpenLDAP

...