0

我对 OpenDj 上的“ismemberof”有一些问题。

我想在 OpenDj 中有一个用户(例如“uid=jdoe,ou=people,dc=example,dc=com”),它可以执行“isMemberof”-Query。问题是默认情况下,OpenDj 中的 User-DN 无法执行“isMemberOf”-查询。

结果显示:

    ldapsearch -h host -p port -D "uid=jdoe,ou=people,dc=example,dc=com" -W "(isMemberOf=cn=cn=group1,ou=groups,dc=example,dc=com)"

    extended LDIF

    LDAPv3
    base <ou=people,dc=example,dc=com> with scope subtree> 
    filter:(isMemberOf=cn=group1,ou=groups,dc=example,dc=com)
    requesting: ALL


    search result

    search: 2

    result: 0 Success 

    numResponses: 1

如果我给 User-DN “bypass-acl”权限,则查询显示该组的所有成员。但是“bypass-acl”权限也赋予了 User-DN “修改”权限。

我只想拥有一个 User-DN,它只能执行“isMemberOf”-Query 没有别的。我用 ACI 试过这个:

    cat test.ldif 

    dn: uid=jdoe,ou=people,dc=example,dc=com

    changetype: modify

    add: aci

    aci: (target="ldap:///\*,dc=example,dc=com) (targetattr = "\*")(version 3.0;acl "Search and >Read "; allow (search, write)(userdn = "ldap:///uid=jdoe,ou=people,dc=example,dc=com");)

不成功。

有人有想法吗?:/

此致,

铁块

4

1 回答 1

1

看起来 jdoe 没有正确搜索/读取组织的权限。但未获取条目的详细原因可能会在日志/访问文件中披露。检查搜索结果日志消息以查看是否有一些信息。

您是否尝试将 ACI 置于 dc=example,dc=com 级别?通常,您不会将特定于用户的 ACI 放在用户条目中,而是放在 ACI 适用的分支中。

aci: (targetattr!="userPassword")(version 3.0; acl "搜索和读取 uid=jdoe 密码除外"; 允许 (read,search,compare) userdn="ldap:///uid=jdoe,ou=people ,dc=示例,dc=com";)

问候,

卢多维奇

于 2014-07-22T14:36:17.493 回答