我有一台具有以下结构的LDAP服务器:
--> base dn
---->admin user
---->ou=employees
------>uid=person1
------>uid=person2
---->ou=services
------>uid=webservice1
------>uid=webservice2
基本上,我有这个“服务”类别来验证有效的服务,比如一个drupal站点。此uid及其密码将进入Web服务的LDAP配置部分。 “服务”的所有成员必须只具有“员工”部分的读取和搜索权限,就是这样。员工必须只能读取除自己以外的所有内容(我应该只能编辑自己的信息)。现在,使用默认的OpenLDAP配置,它允许任何用户在登录时读取或写入任何内容。显然不是优选的。我把它包含在slapd.conf中:
access to *
by self write
by * read
by * search
我认为这会奏效,但我错了。当使用phpldapadmin和我的“员工”帐户测试时,我被告知根dn无法确定。为什么会这样,我该如何解决?
编辑:以下是PHPLDAPAdmin的逐字消息。请注意,这不是一个错误,而是缺少适当的权限。虽然它建议使用config.php,但我觉得这不是正确的解决方案,因为其他程序将不得不使用LDAP并且如果他们要允许登录需要查看完整的root,对吗?
Logged in as:
Could not determine the root of your LDAP tree.
It appears that the LDAP server has been configured to not reveal its root.
Please specify it in config.php