2010-08-12 5 views
0

Certains utilisateurs dans mon annuaire LDAP ont plusieurs uids attribué en tant que tel:récupérer des attributs DN à valeurs multiples en utilisant ActiveLdap

dn: uid=user1,ou=People,o=org 
uid: user1 
uid: nick1 

dn: uid=user2,ou=People,o=org 
uid: user2 
uid: nick2 

Tout en essayant d'obtenir uide pour ces utilisateurs en utilisant ActiveLdap (comme User.uid) Je ne reçois que le premier attr d'uid comme attribut de DN.

Est-il possible avec ActiveLdap d'obtenir les deux?

Répondre

0

je viens de rencontrer dans ce il y a deux semaines: Query all the users in a system with LDAP

Il est pas un problème ActiveLDAP par exemple.

Voici la chose, et j'espère que vous économiserez du temps. avec votre schéma ldap, tel quel, ce que vous avez est un dn unique pour chaque utilisateur. Donc, en effet, si vous avez 100 000 utilisateurs, vous avez 100 000 dossiers, chacun identifié au niveau supérieur comme unique par ID. si votre schéma a été configuré comme ceci:

dn: category=active,ou=People,o=org 
    uid: uid1 
    uid: nick1 

alors vous pouvez interroger tous les utilisateurs actifs pour uid se chevauchent parce que le filtre ne filtre vers le bas pour les utilisateurs actifs et sélectionnez que les utilisateurs avec des attributs uid de x. Comme c'est le cas, vous ne pouvez obtenir qu'au niveau supérieur dn, donc chaque filtre va filtrer un utilisateur, donc c'est inutile. Ce que j'ai fait, c'est interroger ma sauvegarde flatfile de la base de données ldap et extraire les informations de cette façon. J'ai utilisé ruby ​​de base et juste divisé les enregistrements sur les nouvelles lignes, et fait un grand tableau, si je me souviens bien. Nous avions environ 130 000 enregistrements et avons pu obtenir ma requête en environ 2 secondes à partir du fichier plat.

+0

Non, j'ai la petite base de données ici (~ 900 entrées LDAP) et Ruby-LDAP renvoie les bons résultats, donc c'est un problème avec ActiveLdap seulement. Il semble dépouiller l'attribut RDN du tableau d'attributs ne laissant qu'une seule valeur (qui est prise à partir de DN) donc je me demande s'il y a moyen d'empêcher ActiveLdap de le faire. – timurb

Questions connexes