我有一个带有translucent_proxy
的open-ldap-server配置这是为了丰富公司ldap服务器条目的本地属性。 一般来说它工作正常。
我有一个公司ldap服务器:ldap.c.com
,这个服务器
dc=company,dc=com
和通常的子树(ou=People,group
)
我有一个本地ldap服务器:ldap.my.c.com
,这个服务器覆盖了ou=People,dc=company,dc=com
。
所以我可以问
ldapsearch -x -H ldap://ldap.c.com/ (uid=frank) mail mailLocalAddress
并将获得类似
的内容dn:uid=frank,ou=people,dc=company,dc=com
mail: f.name@company.com
当向我的本地ldap服务器询问相同的问题时
ldapsearch -x -H ldap://ldap.my.c.com/ (uid=frank) mail mailLocalAddress
我会得到我丰富的
结果dn:uid=frank,ou=people,dc=company,dc=com
mail: f.name@company.com
mail: frank@my.c.com
mailLocalAddress: frank@my.c.com
mailLocalAddress: nick@my.c.com
FINE!
但是在过滤规则中请求任何objectClass时
ldapsearch -x -H ldap://ldap.my.c.com/ (&(uid=frank)(objectClass=posixAccount)) mail mailLocalAddress
根本没有给我任何结果:
#search result
search: 2
result: 0 success
但是记录确实具有顶级的对象类,Person,inetorgPerson,posixAccount等等。 那么我可能做错了什么?
答案 0 :(得分:0)
看起来你正在进行未经身份验证的ldapsearch,这可能成为问题。首先尝试验证是否可以通过以下方式查看objectClasses:
ldapsearch -x -H ldap://ldap.my.c.com/ "(uid=frank)" objectClass
如果这没有给你输出你可能有一些acl设置,这禁止你看到它。您可以在本地检查它们(取决于您的设置):
sudo ldapsearch -LLLQY EXTERNAL -H ldapi:/// -b cn=config "(olcDatabase=hdb)" olcAccess
在那里你可以看到谁有权访问这些属性,并且可以使用经过身份验证的ldapsearch(也取决于你的设置):
ldapsearch -x -H ldap://ldap.my.c.com/ -WD "uid=frank,ou=people,dc=company,dc=com" "(&(uid=frank)(objectClass=posixAccount))" mail mailLocalAddress