[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: two issues with dyngroups



Guillaume Rousse wrote:
Hello list.

I'm an happy users of dynlist overlay, in order to make my unix users members of their unix primary group:

# admins, groups, msr-inria.inria.fr
dn: cn=admins,ou=groups,dc=msr-inria,dc=inria,dc=fr
objectClass: groupOfURLs
objectClass: posixGroup
gidNumber: 5000
memberURL: ldap:///ou=users,dc=msr-inria,dc=inria,dc=fr??sub?(gidNumber=5000)
cn: admins


With this configuration:
# dynamic groups
overlay dynlist
dynlist-attrset groupOfURLs memberURL member

However, I'm facing two issues here.

The first is that dynlist overlay only accept a single configuration directive for the whole base, preventing to map differently the request URL depending on the context. In my previous example, I need to map the URL as DN, because I'm dynamically building a group from users. If I wanted to build a group from other group, my URL would have been something as:
ldap:///ou=group,dc=msr-inria,dc=inria,dc=fr?member?sub?(cn=users)


and the configuration directive would have been instead
dynlist-attrset groupOfURLs memberURL

It would be nice to handle the overlay differently there.

The second directive is that ACLs seems to ignore this dynamic group:
# admins
access to dn.subtree="dc=msr-inria,dc=inria,dc=fr"
    by group="cn=admins,ou=groups,dc=msr-inria,dc=inria,dc=fr" write
    by * break

Try

access to dn.subtree="dc=msr-inria,dc=inria,dc=fr"
     by group/groupOfURLs/memberURL="cn=admins,ou=groups,dc=msr-inria,dc=inria,dc=fr" write
     by * break

(please excuse any unintended line wrapping).

This worked with a static group, it doesn't work anymore with a dynamic one as I just presented.

I'm using OpenLDAP 2.4.11. Should I open ITS for those issues ?

Issue #2 should be fixed by the above rule. I suggest you file a request for enhancement for issue #1, consisting in adding an (optional) URI to each dynlist-attrset that allows to restrict the application of the attrset to selected dynamic group entries matching the base, scope and filter of the URI (if present).

The configuration would become something like

dynlist-attrset <group-oc> <URL-ad>
        [ ldap:///base??scope?filter ]
        [[<mapped-ad>:]<member-ad> ...]

and, in your case, you would need something like

overlay dynlist
dynlist-attrset groupOfURLs memberURL
        ldap:///cn=admins,ou=groups,dc=msr-inria,dc=inria,dc=fr??base
        member
dynlist-attrset groupOfURLs memberURL
        ldap:///cn=users,ou=groups,dc=msr-inria,dc=inria,dc=fr??base

p.



Ing. Pierangelo Masarati
OpenLDAP Core Team

SysNet s.r.l.
via Dossi, 8 - 27100 Pavia - ITALIA
http://www.sys-net.it
-----------------------------------
Office:  +39 02 23998309
Mobile:  +39 333 4963172
Fax:     +39 0382 476497
Email:   ando@sys-net.it
-----------------------------------