Назад | Перейти на главную страницу

Фильтр атрибутов нескольких значений LDAP

Не могу найти тот же вопрос, но я думаю, что это обычная проблема. У меня есть пользователь LDAP:

dn: uid=alise,ou=peoples,dc=acme,dc=com
objectClass: inetOrgPerson
objectClass: top
cn: alise
sn: alise
uid: alise
userPassword: {SCHEME}password
mail: alise@domain1.tld
mail: alise@domain2.tld
mailAlias: bill@domain1.tld
mailAlias: bill@domain2.tld

Мне нужно вернуть почтовый атрибут, но отфильтрованный по домену. Например, если я ищу:

ldapsearch -xLLL -b ou=peoples,dc=withsound,dc=ru '(mailAlias=bill@domain1.tld)' mail

Я получил:

dn: uid=alise,ou=peoples,dc=acme,dc=com
mail: alise@domain1.tld
mail: alise@domain2.tld

Но мне нужно что-то вроде:

ldapsearch -xLLL -b ou=peoples,dc=withsound,dc=ru '(mailAlias=bill@domain1.tld)' mail=*domain1.tld


dn: uid=alise,ou=peoples,dc=acme,dc=com
mail: alise@domain1.tld

Я не могу просто использовать | grep domain1.tld потому что я использую поиск LDAP в Postfix

Я действительно не хочу разделять пользователя и делать только одно поле электронной почты ...

Такой поисковый запрос должен помочь:

(&(mailAlias=bill@domain1.tld)(mail=*domain1.tld))

Условия поиска LDAP объединяются следующим образом:

(Operator(filter)(filter)(filter)...)

с участием Operator будучи & (И), | (ИЛИ) и ! (НЕ).