Типичные примеры использования entryDN в LDAP-фильтрах

LDAP
Очень часто нужно найти все объекты, начиная с некоей baseDN, но сам baseDN вам не нужен. Для этого отфильтруйте соотв. объект, добавив:
(!(entryDN=dc=example,dc=com))
Аналогично, если вам нужно найти объекты, за исключением тех, что находятся в определённом поддереве, добавьте фильтр вида
(!(entryDN:dnSubtreeMatch:=dc=example,dc=com))
— кстати, именно такой пример упомянут в man 8 slapcat.

Если же вам нужно получить при поиске только объекты из определённых поддеревьев, либо, напротив, исключить из поиска все такие объекты, используйте фильтр из RFC 5020:
(entryDN:componentFilterMatch:=or:{
          item:{ component "3", rule rdnMatch, value "o=Roga" },
          item:{ component "3", rule rdnMatch, value "o=Kopyta" } })

— в результаты поиска будут включены только те объекты, у которых третьим компонентов DN (компонент называется rDN) является либо «o=Roga», либо «o=Kopyta».
Подробнее: если это разрешено списками контроля доступа, то применив данный фильтр. вы найдёте контакты из «ou=contacts,o=Kopyta,l=Stargorod,c=ru» и учётные записи бухгалтеров из «cn=buh,cn=Groups,o=Roga,l=Odessa,c=ua», но, к счастью, не увидите аудиторов из «cn=Auditors,cn=Groups,o=F.A.S.,l=Moscow,c=ru».

1 комментарий

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.