Unser LDAP-Unternehmensverzeichnis befindet sich in einem Open Directory-Setup von Snow Leopard Server. Ich versuche , das verwenden ldapsearch
Tool eine .ldif - Datei Import in den Export ein anderes externen LDAP-Server zu extern zu authentifizieren. Grundsätzlich wird versucht, dieselben Anmeldeinformationen intern und extern verwenden zu können.
Ich muss ldapsearch
arbeiten und mir den Inhalt und die Attribute von allem in der Organisationseinheit "Benutzer" geben und sogar nur auf die Attribute filtern, die ich brauche:
ldapsearch -xLLL -H ldap://server.domain.net /
-b "cn=users,dc=server,dc=domain,dc=net" objectClass /
uid uidNumber cn userPassword > directorycontents.ldif
Dadurch erhalte ich eine Liste der Benutzer und Eigenschaften, die ich auf meinen Remote-OpenLDAP-Server importieren kann.
dn: uid=username1,cn=users,dc=server,dc=domain,dc=net
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: organizationalPerson
uidNumber: 1000
uid: username1
userPassword:: (hashedpassword)
cn: username1
Wenn ich jedoch dieselbe Abfrage für eine OD- "Gruppe" anstelle eines "Containers" versuche, sind die Ergebnisse ungefähr so:
dn: cn=groupname,cn=groups,dc=server,dc=domain,dc=net
objectClass: posixGroup
objectClass: apple-group
objectClass: extensibleObject
objectClass: top
gidNumber: 1032
cn: groupname
memberUid: username1
memberUid: username2
memberUid: username3
Was ich wirklich möchte, ist eine Liste der Benutzer aus dem oberen Beispiel, die basierend auf ihren Gruppenmitgliedschaften gefiltert wurden, aber es sieht so aus, als ob die Mitgliedschaft eher auf der Gruppenseite als auf der Benutzerkontoseite festgelegt wird. Es muss eine Möglichkeit geben, dies herauszufiltern und nur das zu exportieren, was ich brauche, oder?
quelle
memberOf
ein Betriebsattribut ist und explizit angefordert werden muss. Ein bloßesldapsearch
wie hier vorgeschlagen wird nicht zurückkehrenmemberOf
, selbst wenn es existiert. Es sollte auch erwähnt werden, dass dasmemberOf
Overlay normalerweise nicht standardmäßig aktiviert ist, obwohl ich nicht weiß, wie dies in OS X und Open Directory behandelt wird.ldapsearch
Arbeiten funktionieren wie angekündigt.Möchten Sie Gruppen darstellen, indem sich Benutzerobjekte in verschiedenen Containern befinden? Mögen:
Wenn ja, müssen Sie wahrscheinlich ein Skript schreiben, um das LDIF zu massieren. Probieren Sie die hervorragenden Python-LDAP- Module aus.
Ich würde fragen, warum Sie das tun wollen. Es macht es chaotisch, Benutzer zu haben, die mehreren Gruppen angehören, und widerspricht den Konventionen von Open Directory. Können Sie nicht einfach alle Benutzer- und Gruppenobjekte auf Ihren OpenLDAP-Server kopieren und sie basierend auf der Gruppenmitgliedschaft abfragen, anstatt in welchem Container das Benutzerobjekt vorhanden ist?
quelle
Das funktioniert sehr gut.
quelle