Overlay memberof hat den Status „deprecated“ in OpenLDAP 2.6

In der neuen Version 2.6 vom OpenLDAP hat das Overlay memberof den Status „deprecated“ bekommen und wird wohl, über kurz oder lang, ganz aus dem OpenLDAP entfernt werden. Dazu ein Auszug aus der manpage zum slapo-memberof:

Note that this overlay is deprecated and support will be 
dropped in future OpenLDAP releases. Installations should use the 
dynlist overlay instead. Using this overlay in a replicated 
environment is especially discouraged.

Wer zusätzlich die, nun funktionierende, Technik der Replikation des cn=config nutzen will, sollte schon jetzt auf den Einsatz des Overlays memberof verzichten. Hat eh nicht immer das gemacht was es sollte.

Die Einrichtung des Overlays dynlist ist auch kein Hexenwerk. Ich werde hier beschreiben wie eine einfach Einrichtung im cn=config durchgeführt werden kann.

Im ersten Schritt benötigen Sie das Schema dyngroup. Da es zur Zeit nur die Möglichkeit gibt den OpenLDAP 2.6 selber zu bauen oder die Symas-Pakete zu nutzen, gebe ich hier die Pfade für die Symas-Pakete an: 

ldapadd -Y EXTERNAL -H ldapi:/// -f \
/opt/symas/etc/openldap/schema/dyngroup.ldif

Wenn Sie schon die dynamische Konfiguration vom cn=config eingerichtet haben, werden gleich alle LDAP-Server mit dem neuen Schema ausgestattet.

Im nächsten Schritt laden Sie das Modul dynlist und fügen Sie das Overlay in Ihre Objekt-Datenbank ein. Dafür können Sie eine LDIF-Datei mit dem folgenden Inhalt erstellen:

dn: cn=module{0},cn=config 
changetype: modify
add: olcModuleLoad
olcModuleLoad: dynlist.la

dn: olcOverlay=dynlist,olcDatabase={2}mdb,cn=config
changetype: add
objectClass: olcDynamicList
objectClass: olcOverlayConfig
olcOverlay: dynlist
olcDlAttrSet: groupOfURLs memberURL member

Achten Sie darauf, dass Sie die für Ihren LDAP-Server passende Nummer der Datenbank angeben!

Die Attributliste hinter dem Attribut olcDlAttrSet haben dabei die folgende Bedeutung

  • groupOfURLs ist der Gruppentyp der hier verwendet wird
  • memberURL ist das Attribut das aus dem Objekt der dynamischen Gruppe ausgewertet wird
  • member sorgt dafür, dass der vollständige DN in die Gruppe eingetragen wird

Nach dem Sie Ihren LDAP-Server soweit vorbereitet haben, können Sie jetzt die erste dynamische Gruppe anlegen. Im folgenden Listing sehen Sie eine LDIF-Datei für das Anlegen einer dynamischen Gruppe

dn: cn=adminuser,ou=groups,dc=example,dc=net 
objectClass: groupOfURLs
cn: adminuser
memberURL: ldap:///dc=example,dc=net??sub?(employeeType=IT)

Hier wird eine Gruppe cn=adminuser angelegt und jeder Benutzer der jetzt bei dem Attribut employeeType den Eintrag IT besitzt, wird automatisch Mitglied der Gruppe. Wird der Benutzer gelöscht oder sein Attribut employeeType wird verändert, wird er automatisch aus der Gruppe entfernt. Das funktioniert auch bei der Replikation von cn=config

Natürlich können Sie hier beliebig viele Gruppen anlegen und der Filter für die Mitgliedschaft kann auch komplex aufgebaut werden, denn Sie können hier alle möglichen logischen Verknüpfungen der OpenLDAP-Filter nutzen.

This entry was posted in Allgemein. Bookmark the permalink.