Dies ist eine alte Version des Dokuments!
Bisherige Erfahrungen gibt's mit OpenLdap, der 389 Directory Server soll aber auch ganz gut sein.
Um LDAP-User (oder auch andere Objekte) in Gruppen zu verwalten, gibt es die Objectklassen (~GroupOfNames und ~GroupOfUniqueNames) die mit ihrem Attribut „member“ auf andere LDAP-Objekte verweisen. Wenn jetzt das Problem aufkommt, heraus zu finden, ob ein LDAP-Objekt Mitglied einer Gruppe ist bzw. in welchen Gruppen es Mitglied ist, ist das durchsuchen aller defionierten Gruppen eine Möglichkeit. Die bessere Möglichkeit ist das Overlay-Modul „~MemberOf“. Diese Modul sorgt selbstständig für die Referenz des „Member“-Attributes entsprechend der Definition im „~GroupOf(Unique)Names“-Objekt, indem es das member-Attribut virtuell erstellt. Dieses Overlay ist in der Standard-Konfiguration nicht aktiv, das kann mit folgenden Code geändert werden:
#> ldapmodify
dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: memberof
jetzt muss noch separat für jede Datenbank das Overlay eingerichtet werden, wobei es einen Unterschied zwischen „~GroupOfNames“ und „~GroupOfUniqueNames“ gibt:
#> ldapadd
dn: olcOverlay=memberof,olcDatabase={__xx__}hdb,cn=config
olcMemberOfGroupOC: groupOfUniqueNames
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: top
olcOverlay: memberof
olcMemberOfRefInt: TRUE
# die folgenden 2 Zeilen werden nur für "GroupOfUniqueNames" benötigt
# für  "GroupOfNames" stimmen die Defaultwerte des Overlays
olcMemberOfMemberAD: uniqueMember
olcMemberOfMemberOfAD: memberOf
WEnn das alles ohne Fehler geklappt hat, werden bei Änderungen im Gruppen-Objekt die entsprechenden Member-Objekte angepast.