IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

LDAP - recherche ne retourne qu'un seul résultat


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 7
    Par défaut LDAP - recherche ne retourne qu'un seul résultat
    Bonjour à tous,

    Tout d'abord, je suis nouveau sur ce forum (et particulièrement en LDAP) alors excusez-moi d'avance si je poste mal mon message.
    Mon problème est le suivant : Je me connecte en php à un annuaire LDAP en étant authentifié. Lorsque je fais une recherche, il ne me retourne qu'un seul résultat, mon nom au lieu de me retourner la liste de tous les utilisateurs.
    Voici le scope : CN=MON_NOM,CN=Users,DC=MA_SOCIETE,DC=LOCAL"

    et l'arborescence :

    MA_SOCIETE
    --> CN = configuration
    --> CN = Schema
    --> DC = DomainDnsZones
    --> DC = ForestDnsZones
    --> DC = MA_SOCIETE
    ----------> CN = Builtin
    ----------> CN = Computers
    ----------> CN = ...
    ----------> CN = USERS
    ------------------> CN = MON_NOM
    --> DC = TAPI3Directory

    Je n'ai que des DC et des CN, pas de O ou de UO.
    Je suppose que le problème vient du scope, mais je ne sais pas quoi mettre.
    Si je mets que DC=MA_SOCIETE,DC=LOCAL il me met un erreur.
    Si quelqu'un a une idée, je suis preneur. Merci d'avance à ceux qui me liront et m'aideront. Cdlt.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    C'est parfaitement normal si le DN de base de la recherche est vous-mêmes (l'objet qui vous décrit). Pour avoir la liste des utilisateurs il faudrait effectuer une recherche de scope onelevel (fonction ldap_list) voir subtree (ldap_search) en partant de CN=Users,DC=MA_SOCIETE,DC=LOCAL (éventuellement plus haut avec filtrage).

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 7
    Par défaut
    Citation Envoyé par julp Voir le message
    C'est parfaitement normal si le DN de base de la recherche est vous-mêmes (l'objet qui vous décrit). Pour avoir la liste des utilisateurs il faudrait effectuer une recherche de scope onelevel (fonction ldap_list) voir subtree (ldap_search) en partant de CN=Users,DC=MA_SOCIETE,DC=LOCAL (éventuellement plus haut avec filtrage).
    Merci de votre réponse rapide. Je vais tester et je vous tiens au courant.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 7
    Par défaut
    J'ai testé et ça fonctionne bien ! Merci.
    Maintenant, j'ai 2 questions :

    1/ je veux utiliser une authentification avec LDAP
    Il faut que j'utilise ldap_search pour récupérer le login et le password de l'utilisateur. Cependant, je n'arrive pas à utiliser ldap_search avec CN=Users,DC=MA_SOCIETE,DC=LOCAL. Pourriez-vous m'expliquez et me donner un exemple avec mon cas de figure, svp ?

    2/ Je dois créer un formulaire où l'utilisateur rentre les informations de connexion (scope) et que dynamiquement, il affiche la liste des utilisateurs LDAP.
    est-ce que le script que je vais mettre en place sera universel, càd qu'il sera valable dans tous les cas de figure (aussi bien pour l'authentification que pour le listing des utilisateurs) ?

    Merci d'avance.

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Citation Envoyé par the_magician67 Voir le message
    1/ je veux utiliser une authentification avec LDAP
    Il faut que j'utilise ldap_search pour récupérer le login et le password de l'utilisateur. Cependant, je n'arrive pas à utiliser ldap_search avec CN=Users,DC=MA_SOCIETE,DC=LOCAL. Pourriez-vous m'expliquez et me donner un exemple avec mon cas de figure, svp ?
    J'ai du mal de comprendre : je ne vois pas trop le rapport puisque vous disiez que ça marchait justement.

    Normalement, il y a deux façons de réaliser l'authentification (je ne parle uniquement de celle-ci ici) : soit vous utilisez les informations de l'utilisateur pour la réaliser (si le bind échoue c'est que ce n'est pas bon) soit votre application utilise un compte propre avec un accès total en lecture et effectue cette vérification (auquel cas il faut rechercher l'utilisateur sur son nom/login - filtre - et, s'il y a correspondance vérifier que le mot de passe correspond - puisque normalement chiffré/hashé).

    C'est avant tout une question de droits derrière. Et ça dépend éventuellement des objets utilisés (objectclass) et de l'implémentation.

    Citation Envoyé par the_magician67 Voir le message
    2/ Je dois créer un formulaire où l'utilisateur rentre les informations de connexion (scope) et que dynamiquement, il affiche la liste des utilisateurs LDAP.
    est-ce que le script que je vais mettre en place sera universel, càd qu'il sera valable dans tous les cas de figure (aussi bien pour l'authentification que pour le listing des utilisateurs) ?
    Deux fonctions différentes = deux parties/codes différents.


    Finalement, le principe reste globalement le même à celui d'une application reposant sur une base de données relationnelle classique.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 7
    Par défaut
    En fait, je me suis probablement mal exprimé.
    Pour l'affichage de tous les utilisateurs, j'utilisais ldap_search avec le filtre '*' mais comme ça ne marchait pas, j'ai utilisé ldap_list (que je vais utiliser plus loin dans mon appli pr lister tous les utilisateurs). Mais ce serait plus simple pour moi d'utiliser uniquement la fonction ldap_search en changeant les filtres, de manière à la rendre universelle.

    Je ne sais pas si j'ai été assez clair.

    Je n'ai pas encore réalisé l'authentification (qui reste effectivement classique), mais il faudra que j'utilise ldap_search avec le scope CN=Users,DC=MA_SOCIETE,DC=LOCAL et ça ne fonctionne pas (ou du moins, je n'arrive pas à le faire fonctionner).
    Pourquoi ce scope fonctionne avec ldap_list et non avec ldap_search ?
    Ai-je oublié des paramètres ?

    En tout cas, merci de prendre le temps de me répondre.

  7. #7
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Le filtre '*' n'est pas valide.

    Ensuite, il faudrait déjà bien faire la distinction de scopes qui se matérialisent, en PHP, par des fonctions différentes : ldap_list (onelevel) contre ldap_search (subtree). Le scope onelevel limite la recherche aux fils directs (pas leur descendance) de l'objet de référence désigné par son DN. Au contraire, un scope subtree parcourra récursivement tous ses enfants. Par conséquent, suivant ce que l'on veut, un scope conviendra plutôt qu'un autre.

    Quant à l'usage que vous en faites, les résultats ou erreurs obtenus, impossible de dire quoi que ce soit sans aucun élément (code, etc) sous les yeux.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 7
    Par défaut
    Je vais tester tout ça et je reviendrai dès que j'aurai eu le temps de mettre ça en place (j'ai juste quelques urgences à traiter).
    Merci encore de votre aide.
    Cdlt.

Discussions similaires

  1. recherche Fulltext ne retourne pas les bons résultats
    Par gmic7 dans le forum Requêtes
    Réponses: 5
    Dernier message: 01/12/2011, 15h06
  2. [MySQL] Simple moteur de recherche qui retourne aucun résultat si plus de 1 mot clef
    Par yule dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/06/2010, 20h17
  3. [LDAP] recherche dans l'annuaire
    Par Overflow64 dans le forum Développement
    Réponses: 1
    Dernier message: 23/03/2005, 13h34
  4. [LDAP] recherche dans differents container LDAP avec Java
    Par touinth dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 01/07/2004, 16h06
  5. Recherche multi-mots sur une seule colonne
    Par Badiste dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/03/2004, 11h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo