Project

General

Profile

Evolution #19597

Optimisation Recherche LDAP

Added by Christophe LEON over 5 years ago. Updated over 5 years ago.

Status:
Fermé
Priority:
Normal
Assigned To:
-
Target version:
Start date:
03/10/2017
Due date:
% Done:

0%

Distribution:

Description

Contexte : ~ 20 000 utilisateurs avec ~ 400 groupes
Constat : La recherche d'un usager pour le partage : La recherche est extrêmement longue

Solutions:

1) les champs cn et displayName ne sont pas indexés dans le Ldap
=> rectifier le slapd.conf et en relançant les index (Eole ? )

2) dans apps/user_ldap/lib/access.php (Ligne 710)
il y a une méthode fetchListOfUsers qui fait appel $this->batchApplyUserAttributes($ldapRecords);
si je commente cette ligne le temps de réponse est divisé par 3 et les réponses sont bien envoyées
A priori batchApplyUserAttributes permet de mettre à jour la bdd owncloud des users avec les infos LDAP, sauf que cela est lancé a chaque recherche et du coup ça plombe la recherche

3) core/js/sharedialogview.js une valeur de limit de recherche en dur à 200,
=> a étudier le passage à une valeur plus basse

Christophe

own_ldap.png View (52.1 KB) Christophe LEON, 03/24/2017 08:37 AM

Owncloud_agenda_4.jpg View (7.53 KB) Christophe BRENELIERE, 04/04/2017 05:58 PM

Owncloud_agenda_3.png View (4.97 KB) Christophe BRENELIERE, 04/04/2017 05:58 PM

Owncloud_agenda_2.png View (2.48 KB) Christophe BRENELIERE, 04/04/2017 05:58 PM

Owncloud_agenda_1.png View (1.31 KB) Christophe BRENELIERE, 04/04/2017 05:58 PM


Related issues

Related to Distribution EOLE - Tâche #19826: Optimisation recherche annuaire Fermé 03/22/2017

Associated revisions

Revision 5f7a0ce2 (diff)
Added by Arnaud Fornerot over 5 years ago

ajouter uid displayname email comme attribut de recherche (ref #19597)

Revision 21d5d674 (diff)
Added by Arnaud Fornerot over 5 years ago

patch afin de limiter le scop des recherches à 20 et application de needrefresh (ref #19597)

History

#1 Updated by Arnaud FORNEROT over 5 years ago

  • Related to Tâche #19826: Optimisation recherche annuaire added

#3 Updated by Arnaud FORNEROT over 5 years ago

  • Status changed from Nouveau to En attente d'informations

Je viens de mettre des traces dans fetchListOfUsers
Il ne passe pas dedans dans le cas de la recherche d'un utilisateur pour partage
Après il rentre bien dedans quand on va dans l'écran des utilisateurs.
Du coup je ne crois pas que l'on soit bien au bonne endroit
Je me trompe ?

Après je trouve le filtre bien étrange sur fetchListOfUsers
(&(|(objectclass=inetOrgPerson))(displayName=*)(displayName=*))

batchApplyUserAttributes me semble indispensable
C'est ce qui fait la mise à jour de l'utilisateur en fonction de l'annuaire.

#4 Updated by Christophe LEON over 5 years ago

Précision suite a discussion sur IRC

Lors d'une recherche ( chris par exemple ), le filtre généré est le suivant apps/user_ldap/user_ldap.php:getUsers

(&(&(objectclass=ENTPerson))(displayName=*)(|(uid=chris*)(displayName=chris*)(mail=chris*)))

L'index sur displayName serait donc en eq,subinitial

NOTE: uid, displayName et mail sont des éléments que nous avons renseignés dans la configuration

#5 Updated by Arnaud FORNEROT over 5 years ago

  • Status changed from En attente d'informations to Résolu
  • Target version set to Envole 5.5

#6 Updated by Christophe BRENELIERE over 5 years ago

La recherche fonctionne correctement si on saisit l'identifiant de l'utilisateur et pas toujours si on saisit une partie du nom (voir images ci-jointes).
Rq : dans la configuration de base d'Owncloud, l'entrée LDAP n'est pas présente.

#7 Updated by Christophe LEON over 5 years ago

Attention la recherche owncloud fait du subinitial sur ldap

Cela signifie qu'il faut saisir le début de uid ou mail mais pas le milieu

En d'autres termes la recherche est
search* et non search

Je ne sais pas si c'est paramétrable si c'est le cas il faut prévoir l'indexation ldap sur du sub et non plus du subinitial

#8 Updated by Arnaud FORNEROT over 5 years ago

  • Status changed from Résolu to Fermé

Also available in: Atom PDF