Connexion LDAP
Bonjour
je suis avec GLPI 9.2.3 et formCreator 2.6.4
j'arrive à importer des utilisateurs et des groupes AD. OK
Lorsque je cree un formulaire avec un composant lié LDAP, le resultat est toujours 'Aucun resultat' : je prends la meme structure de filtre que celui declaré dans le LDAP GLPI.
Pourquoi ? Quelle serait le type de filtre à renseigner ? attribut (AD/LDAP?)
D'avance merci
Bonjour
Avez-vous spécifié un attribut ?

Si vous choisissez l'attribut Common Name, vous devriez voir vos utilisateurs.
Voici le champ et le filtre :
et coté LDAP (authentification)

En regardant via Ldap, je ne vois pas de champs commonName. par contre display name existe. Seulement pas dans les attributs disponibles?
Ine faut pas regarder la configuration LDAP dans l'authentification, mais juste vérifier comment vous avez rempli la question de type LDAP. L'attribut Common Name doit exister indépendamment que vous utilisiez un LDAP normal ou un AD. Mon exemple est fait à partir d'un AD Samba 4, et la question utilise le filtre par défaut quand on la crée.
Voici ce que j'ai coté formulaire :
et je ne vois pas de noms s'afficher.
En utilisant ldap soft* je vois les utilisateurs, filtres etc... j'ai recupéré filtre... mais toujours rien.
Bonjour,
Je tenterai de reproduire. Vous confirmez que vous avez un AD, pas un LDAP (openldap, 389, ...) ?
on a AD avec connexion 389. j'essaie d'inserer le DC dans le filtre... mais quelle syntaxe ?
Il n'y a pas besoin d'insérer le DC dans le filtre. JE pense que celui qui est dans votre dernière capture d'écran sera bon. Avez-vosu de la latence quand vous affichez le formuliare contenant le champ (utiliser l'ongler "preview" pour faire un essai. Si oui, il se peut qu'il y ait un problème pour joindre votre serveur LDAP.
Tout depend de ce que vous entendez par latence... Mais il est vrai que l'affichage n'est pas immédiat contrairement aux autres affichages.
Bonjour
La latence serait de l'ordre de 10 seconds ou plus, témoignant d'une incapacité pour le plugin à se connecter à l'annuaire. J'ai pu constater cela récemment suite à une mauvaise configuration. Dans ce scénarion la liste des utilsiateurs est vide.
et commentant en etre sur ? Log ?
J'en ai eu la certitude car j'étais en train de faire un debug sur un formulaire contenant un champ LDAP avec un annuaire mal configuré sur mon instance. J'ai corrigé la configuration pour réparer le souci et ai réfléchi sur la nature du problème. Pour moi il n'y a pas de bug. J'ai également choisi de ne pas faire apparaitre un message d'avertissement sur le formulaire car cela dérouterait l'utilsiateur final. Cela dit, une amélioration pourrait être faite, mais je n'ai pas encore de solution satisfaisante. LE mieux que j'aie trouvé pour le moment serait de ne pas traiter le champ si l'annuaire LDAP associé ne fonctionne pas (ce qui est fait avec les champs de type Tag)
Le fait que votre dropdown soit vide me fait penser que cette expérience vous arrive également. Une latence anormale à l'affichage du formulaire serait déjà une piste.
Une idée simple pour vérifier : dupliquez votre formulaire, supprimer le champ de type LDAP dans le duplicata, et affichez ce formulaire avec l'onglet "prévisualisation". Si il y a bien une latence sur le formulaire original vous verrez tout de suite la différence.
En duspliquant je n'ai pas la meme latence : c'est bien plus rapide, ce qui conforte votre idee. Néanmoins, ce qui me parait etrange c'est que l'authentification via LDAP est ok, vu que les utilisateurs se connectent etc, et ce pour l'ensemble des Ldaps configurés, et que je parviens à faire l'import d'utilisateur ou de groupe AD...
J'ai essayé d'utiliser le debug, mais je ne vois rien... on ne pourrait pas imaginer un 'test'/monitor lors de la connexion du formulaire au ldap afin de vérifier la connexion, un peu comme dans l'onglet 'authentification' ?
dans le formulaire, dans quel script se trouve la connexion au ldap et le rapatriement des données utilisateurs ?
la connection à l'annuaire s'effectue dans le fichier suivant : https://github.com/pluginsGLPI/formcreator/blob/develop/inc/fields/ldapselectfield.class.php
Je pense que vous avez ajouté un annuaire dans GLPI, puis créé votre formulaire avec le champ LDAP et finalement détruit puis recréé votre annuaire dans GLPI. Dans une telle situation le champ LDAP fait référence à un annuaire qui n'existe plus et il peut y avoir une tentative de connection vers un hôte dont le nom n'existe pas (chaine vide ou "N/A"; à déterminer en relisant le code).
non, je n'ai pas supprimé puis ajouter le ldap.
par contre, je vois dans le fichier ldap_filter.php $filter = "(".$authldap->getField("login_field")."=*)"; $ldap_condition = $authldap->getField('condition'); echo "(& $filter $ldap_condition)";
pourriez vous indiquer ce qui est fait ensuite avec la variable $filter sachant que pour l'authentification dans GLPI j'utilise un compte spécifique à chaque LDAP. où sort la ligne 'echo' ?
Sous GLPI 9.3.2, toujours meme chose. Dommage que je n'arrive pas à le faire fonctionner car pour demander ajout d'utilisateur dans des Groupes la connexion LDAP serait plus simple que d'ajouter champ utilisateur (objet glpi) ou texte libre (si l'utilisateur n'existe pas dans la base) Il n'y aurait pas des endroits strategiques ou je pourrais mettre une echo afin de vérifier connexion/retour/variables importantes pour le bon fonctionnement à la connexion LDAP (sachant que mon authentification LDAP fonctionne...)
je pense avoir une piste :) ligne 83 du script ldapselectfield.class, j'ai ajouté (lors du catch) echo $ds; echo $e; ainsi j'ai l'erreur (eventuelle) et....
Resource id #21ErrorException: ldap_search(): Partial search results returned: Sizelimit exceeded in \HTTPServer\wwwroot\plugins\formcreator\inc\fields\ldapselectfield.class.php:64 Stack trace: #0 [internal function]: plugin_formcreator_ldap_warning_handler(2, 'ldap_search(): ...', '\...', 64, Array) #1 \HTTPServer\wwwroot\plugins\formcreator\inc\fields\ldapselectfield.class.php(64): ldap_search(Resource id #21, 'OU=xxxxxx,OU=x...', '(& (samaccountn...', Array) #2 HTTPServer\wwwroot\plugins\formcreator\inc\fields\selectfield.class.php(41): PluginFormcreatorLdapselectField->getAvailableValues() #3 \HTTPServer\wwwroot\plugins\formcreator\inc\field.class.php(96): PluginFormcreatorSelectField->displayField(true) #4 \HTTPServer\wwwroot\plugins\formcreator\inc\fields.class.php(122):
trop d'enregistrement à retourner ?
A priori il y a trop de résultats. Efectivement en passant récemment sur le code pour préparer la version 2.7 je me suis étonné de n'avoir jamais eu de retour de bug.
Combien d'utilisateurs vous avez dans l'annuaire ?
Un tres grand nombre... du coup en mettant certains filtres j'arrive à faire fonctionner, mais pas pratique... NB j'ai du modifier les parametres supp du ldap dans GLPI afin de spécifier d'utiliser les resultats paginés. par contre je ne sais pas si le nbre de resultats (illimité) et taille de la page (100) a un role.
D'autre part j'ai des ldap repliques qui semblent ne pas avoir forcemment les memes données au meme moment... (bizarre) En utilisant un soft ldap (softterra) j'obtiens bien une liste complete des utilisateurs enfin jusque (1000 ensuite ca bloque) alors que si j'utilise un serveur d'authentification (dans le formulaire de glpi) je n'ai pas la meme liste : liste incomplete...
Et comment faire pour faire la liaison ensuite avec les groupes qui ne sont pas dans la meme OU ? Je l'ai defini dans l'authentification ldap : lors de l'imoort ca marche, mais si j'utilise cette connexion cela ne fonctionne pas (niveau formulaire) j'ai l'impression qu'il faut creer une nouvelle connexion LDAP avec baseDN pour l'accés au groupe (via le formulaire) je ne sais pas si je me fais bien comprendre...
Pas de news ?
voici ce que j'ai mis cote authentification ldap
mais toujours le meme souci de liste "abregée"...
Je n'ai pas encore repris les recherches sur ce bug. De mémoire, le plugin ne réutilsie pas les paramètres de l'annuaire dans GLPI pour faire sa connection LDAP. C'est peut être par là qu'il faudrait améliorer le plugin.
sachant que pour les connexions dans GLPI, je n'ai aucun probleme avec les LDAP : toute personne presente dans le ldap arrive à se connecter sans souci et les imports d'utilisateurs sont ok : donc le filtre dans l'authentification est correctement réalisé. A priori dans le formulaire aussi, sachant que je vois des utilisateurs... mais liste incomplete...
Je penche pour un problème de pagination. Ca pourrait se confirmer si un filtre restreint les résultats de recherche LDAP à une poignée d'éléments.
je confirme Si je restreins la liste via le 'displayname' je vois bien l'ensemble des personnes correspondants donc souci dans la pagination ou buffer (pour grand nombre d'objets ldap ;) )
Bonjour
Pouvez-vous vérifier si les résultats paginés sont activés sur votre GLPI ?

Sur intance de Dev : oui, taille de page 30000 et nbr maxi des resultalts : 300000
Et le serveur LDAP est configuré avec les mêmes valeurs ?
euh... joker : cela a une importance ?
La pagination est imposée par le serveur et les clients sont tenus de faire des requêtes avec des pages de taille inférieure ou égale aux limites du serveur.
Je ne connais pas 389, mais je pense que ça existe.
Le plugin utilise l'API de GLPI pour accéder au serveur LDAP, et à priori, les paramètres de pagination de GLPI doivent s'appliquer.