Notre annuaire LDAP d'entreprise est hébergé sur une configuration Open Directory de Snow Leopard Server. J'essaie d'utiliser l' ldapsearch
outil pour exporter un fichier .ldif à importer dans un autre serveur LDAP externe pour s'authentifier en externe; essaie essentiellement de pouvoir utiliser les mêmes informations d'identification en interne et en externe.
Je dois ldapsearch
travailler et me donner le contenu et les attributs de tout dans l'unité d'organisation "Utilisateurs", et même filtrer vers le bas uniquement les attributs dont j'ai besoin:
ldapsearch -xLLL -H ldap://server.domain.net /
-b "cn=users,dc=server,dc=domain,dc=net" objectClass /
uid uidNumber cn userPassword > directorycontents.ldif
Cela me donne une liste d'utilisateurs et de propriétés que je peux importer sur mon serveur OpenLDAP distant.
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
Cependant, lorsque j'essaie la même requête sur un "groupe" OD au lieu d'un "conteneur", les résultats sont quelque chose comme ceci:
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
Ce que je veux vraiment, c'est une liste d'utilisateurs de l'exemple supérieur filtrée en fonction de leur appartenance à un groupe, mais il semble que l'appartenance soit définie du côté Groupe, plutôt que du côté compte d'utilisateur. Il doit y avoir un moyen de filtrer cela et d'exporter uniquement ce dont j'ai besoin, non?
la source
memberOf
est un attribut opérationnel et doit être demandé explicitement. Un simpleldapsearch
comme suggéré ici ne reviendra pasmemberOf
, même s'il existe. Il convient également de mentionner que lamemberOf
superposition n'est généralement pas activée par défaut, bien que je ne sache pas comment cela est géré dans OS X et Open Directory.ldapsearch
travaux mis à jour comme annoncé.Visez-vous à représenter des groupes en ayant des objets utilisateur situés dans différents conteneurs? Comme:
Si oui, je pense que vous devrez écrire un script pour masser le LDIF. Essayez les excellents modules Python-LDAP .
Je me demande cependant pourquoi vous voulez faire cela. Cela rend désordonné d'avoir des utilisateurs qui appartiennent à plusieurs groupes et est contraire aux conventions d'Open Directory. Ne pouvez-vous pas simplement copier tous les objets utilisateur et groupe sur votre serveur OpenLDAP et l'interroger en fonction de l'appartenance au groupe plutôt que dans quel conteneur l'objet utilisateur existe?
la source
Cela fonctionne très bien.
la source