Я использую OpenLDAP, который, к сожалению, не имеет свойства memberOf. Обычно при опросе LDAP Active Directory вы можете написать запрос, который:
ldapsearch -Dbinduser -wbinduserpwd -Hldaps://ldapsvr.org -bdn=ldapsvr,dn=org
(&(uid={0},ou=usr,dn=ldapsvr,dn=org)(memberOf=cn=g0001,ou=grps,dn=ldapsvr,dn=org))
но теперь я остался с пользователем в:
dn: uid=u0001,ou=usr,dn=ldapsvr,dn=org
cn: u0001
и группа вроде:
dn: cn=g0001,ou=grps,dn=ldapsvr,dn=org
cn: g0001
memberUid: u0001
memberUid: u0002
Кто-нибудь знает запрос ldapsearch (в частности, правильный фильтр) для возврата DN пользователя? самое близкое, к чему я могу добраться, - это возврат DN группы, если этот memberUid существует, но не DN пользователей в группе. Я думал, что вы можете запросить в ldapsearch, как SQL:
select user.dn
from dit
where grp.cn{g001}.memberUid{u0001} = TRUE
Я не думаю, что это можно сделать менее чем за два запроса: первый, чтобы получить uid
, а второй - найти dn
.
Как обходной путь:
groupOfNames
объекты. Эти объекты позволяют member
атрибут, содержание которого является полным dn
;memberOf
наложение, что позволяет создавать обратное членство (как в Active Directory).