Ich arbeite derzeit an der Integration der LDAP-Authentifizierung in ein System und möchte den Zugriff basierend auf der LDAP-Gruppe einschränken. Der einzige Weg, dies zu tun, ist über einen Suchfilter und daher glaube ich, dass meine einzige Option die Verwendung des Attributs "memberOf" in meinem Suchfilter ist. Ich verstehe, dass das Attribut "memberOf" ein Betriebsattribut ist, das vom Server für mich erstellt werden kann, wenn für einen beliebigen Eintrag "groupOfNames" auf dem Server ein neues Attribut "member" erstellt wird. Mein Hauptziel ist es, einem vorhandenen "groupOfNames" -Eintrag ein "member" -Attribut hinzuzufügen und dem von mir angegebenen DN ein passendes "memberOf" -Attribut hinzuzufügen.
Was ich bisher geschafft habe:
Ich bin noch ziemlich neu in der LDAP-Administration, aber basierend auf dem, was ich im openldap-Administratorhandbuch gefunden habe, scheint Reverse Group Membership Maintence, auch bekannt als "memberof overlay", genau den gewünschten Effekt zu erzielen.
Auf meinem Server wird derzeit eine Paketinstallation (slapd unter Ubuntu) von openldap 2.4.15 ausgeführt, die die Laufzeitkonfiguration "cn = config" verwendet. Die meisten Beispiele, die ich gefunden habe, verweisen immer noch auf die ältere "slapd.conf" -Methode der statischen Konfiguration, und ich habe mein Bestes versucht, die Konfigurationen an das neue verzeichnisbasierte Modell anzupassen.
Ich habe die folgenden Einträge hinzugefügt, um das Overlay-Modul memberof zu aktivieren:
Aktivieren Sie das Modul mit olcModuleLoad
cn=config/cn\=module\{0\}.ldif
dn: cn=module{0}
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib/ldap
olcModuleLoad: {0}back_hdb
olcModuleLoad: {1}memberof.la
structuralObjectClass: olcModuleList
entryUUID: a410ce98-3fdf-102e-82cf-59ccb6b4d60d
creatorsName: cn=config
createTimestamp: 20090927183056Z
entryCSN: 20091009174548.503911Z#000000#000#000000
modifiersName: cn=admin,cn=config
modifyTimestamp: 20091009174548Z
Das Overlay für die Datenbank wurde aktiviert und die Standardeinstellungen (groupOfNames, member, memberOf usw.) dürfen verwendet werden.
cn=config/olcDatabase={1}hdb/olcOverlay\=\{0\}memberof
dn: olcOverlay={0}memberof
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: top
olcOverlay: {0}memberof
structuralObjectClass: olcMemberOf
entryUUID: 6d599084-490c-102e-80f6-f1a5d50be388
creatorsName: cn=admin,cn=config
createTimestamp: 20091009104412Z
olcMemberOfRefInt: TRUE
entryCSN: 20091009173500.139380Z#000000#000#000000
modifiersName: cn=admin,cn=config
modifyTimestamp: 20091009173500Z
Mein aktuelles Ergebnis:
Mit der obigen Konfiguration kann ich eine NEUE "groupOfNames" mit einer beliebigen Anzahl von "member" -Einträgen hinzufügen und alle beteiligten DNs mit einem "memberOf" -Attribut aktualisieren. Dies ist Teil des Verhaltens, das ich erwarten würde. Obwohl ich der Meinung bin, dass das Folgende mit dem Overlay-Mitglied hätte erreicht werden sollen, weiß ich immer noch nicht, wie ich das Folgende tun soll, und würde mich über jeden Rat freuen:
- Fügen Sie einem EXISTING "groupOfNames" ein "member" -Attribut hinzu und lassen Sie ein entsprechendes "memberOf" -Attribut automatisch erstellen.
- Entfernen Sie ein "member" -Attribut und lassen Sie das entsprechende "memberOf" -Attribut automatisch entfernen.
slapadd
(auf der gestoppten Datenbank) nicht der richtige Weg, dies zu tun?