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

Langage PHP Discussion :

[FTP] Authentifier des utilisateurs via un annuaire LDAP


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 102
    Points : 68
    Points
    68
    Par défaut [FTP] Authentifier des utilisateurs via un annuaire LDAP
    Hello



    J'ai un petit soucis, je n'arrive pas à authentifier les utilisateurs de mon appli via l'annuaire ldap de la boite. Voila le code que j'utilise pour faire mes tests et comprendre comment les annuaires LDAP fonctionnent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    <?php
     
    // using ldap bind 
    $ldaprdn  = 'cn=monappli,ou=appli,o=maboite,c=fr';     	// ldap rdn or dn
    $ldappass = 'monPass';  				// associated password
     
    // connect to ldap server 
    $ldapconn[0] = ldap_connect("serveurLDAP1",389);
    $ldapconn[1] = ldap_connect("serveurLDAP2",389);
     
    print_r($ldapconn);
     
    if ($ldapconn[0] || $ldapconn[1]) {
     
    	// binding to ldap server
    	$ldapbind[0] = ldap_bind($ldapconn[0], $ldaprdn, $ldappass);
    	$ldapbind[1] = ldap_bind($ldapconn[1], $ldaprdn, $ldappass);
     
     
    	$r = ldap_bind($ldapconn,"prenom.nom@maboite.fr","monPassPerso");
    	if($r) echo "ok";
    }
     
    ldap_close($ldapconn[0]);
    ldap_close($ldapconn[1]);
     
    ?>
    L'identifiant d'un utilisateur c'est son mail. Au début je comptais faire un ldap_search, en recherchant l'utilisateur "prenom.nom@maboite.fr" avec le mot de passe "monPassPerso", mais je ne sais pas comment sont codés les mots de passe de l'annuaire LDAP de la boite, et on veut surtout pas me le dire, donc ca ne fonctionne pas. On m'a dit de faire avec une requete BIND mais je ne vois pas comment, puisque pour moi ca sert à identifier l'appli au serveur LDAP. et ce que j'ai fait ne fonctionne pas.

    Il faut que je fasse un bind sur l'annuaire pour identifier mon appli, et un autre bind pour identifier l'utilisateur ? en même temps ? j'ai rien compris ?


    Voilà, si vous avez une idée ...


    ViRouF

  2. #2
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    533
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 533
    Points : 313
    Points
    313
    Par défaut
    Bonjour,

    voici un topic où j'ai expliqué comment je faisais l'authentification...

    En espérant que ça t'aide.
    N'oubliez pas le tag .
    Merci de ne pas envoyer de MP pour des problèmes techniques.

  3. #3
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 102
    Points : 68
    Points
    68
    Par défaut
    Oui mais visiblement tu sais quelle est la fonction utilisée pour crypter les mots de passe, moi non. Voici a quoi ressemble le mot de passe un fois crypté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    [userpassword] = Array
                    (
                        [count] = 1
                        [0] = (058E93F58614BE47260B8BB3F996ED59)
                    )
    J'ai essayé ton méthode pour crypter le mot de passe mais ca ne correspond pas quand je compare le mien crypté à celui que je vois lorsque je me recherche dans l'annuaire

  4. #4
    Membre averti
    Inscrit en
    Janvier 2004
    Messages
    533
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 533
    Points : 313
    Points
    313
    Par défaut
    De toute manière, si tu ne sais pas comment sont encryptés les mots de passe, je ne vois pas comment faire pour comparer celui saisi par l'utilisateur, et celui stocké dans le LDAP...

    Essaie de voir de la doc sur ldap_bind.
    N'oubliez pas le tag .
    Merci de ne pas envoyer de MP pour des problèmes techniques.

  5. #5
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 102
    Points : 68
    Points
    68
    Par défaut
    Bah justement avec ldap_bind tu passes le mot de passe en clair et il se débrouille d'après ce que j'ai compris. En tout cas c'est ce que je fais avec le compte applicatif de mon appli.

    La doc de ldap_bind je la connais par coeur depuis le temps que je cherche

  6. #6
    Expert éminent sénior

    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
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par ViRouF
    Bah justement avec ldap_bind tu passes le mot de passe en clair et il se débrouille d'après ce que j'ai compris. En tout cas c'est ce que je fais avec le compte applicatif de mon appli.
    Bien sûr ! Si vous vous connectez à un annuaire ldap_bind prend le mot de passe en clair, nul besoin de connaître les algorithmes de cryptage utilisés derrière pour stocker les mots de passe. Par contre, si vous voulez comparer les mots de passe stockés (obtenus par une recherche et comparés à celui saisi par l'utilisateur par exemple), dans ce cas vous devrez le savoir.


    Julp.

  7. #7
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 102
    Points : 68
    Points
    68
    Par défaut
    Oui c'est ça.

    Voila un extrait du mail que l'admin LDAP m'a envoyé :

    Vous n'avez pas à connaitre la façon dont est chiffrer le mot de passe. L'authentification de l'utilisateurse fait par une requète LDAP de BIND sous la session de l'application et non par un SEARCH
    Je passe peut-être à coté de quelque chose mais franchement je vois pas du tout comment m'y prendre avec la fonction ldap_bind.

  8. #8
    Expert éminent sénior

    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
    Points : 17 778
    Points
    17 778
    Par défaut
    Que ne comprenez-vous pas ? La fonction ldap_bind permet de (tenter de) s'authentifier avec un utilisateur existant dans l'annuaire (couple DN (et non RDN) et mot de passe). Si vous n'utilisez pas cette fonction (ou alors sans les 2e et 3e paramètres) alors vous serez "connectés" à l'annuaire sous l'utilisateur anonyme, un peu comme un serveur FTP. Cependant, attention : comme pour un serveur FTP cet utilisateur anonyme peut avoir des droits restreints voire aucun. D'ailleurs avec LDAP, chaque utilisateur peut avoir des droits spécifiques (l'implémentation dépend du serveur utilisé et ce n'est pas à vous de le gérer si ce n'est éventuellement avec les erreurs LDAP renvoyées : LDAP_INSUFFICIENT_ACCESS ou quelque chose du genre).


    Julp.

  9. #9
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 102
    Points : 68
    Points
    68
    Par défaut
    ok j'ai fini par comprendre le fonctionnement

    Faut aller récupérer par un SEARCH le dn de l'utilisateur et ensuite envoyer ce DN et le mot de passe par un BIND pour authentifier l'utilisateur.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/06/2012, 17h22
  2. Comment ajouter des utilisateurs dans l'annuaire LDAP
    Par roubben dans le forum SWT/JFace
    Réponses: 0
    Dernier message: 24/04/2011, 19h55
  3. Ajout d'un utilisateur dans l'annuaire LDAP
    Par Delack dans le forum Langage
    Réponses: 4
    Dernier message: 25/02/2010, 12h13
  4. Idifification sur moss 2007 via un annuaire ldap domino
    Par fred45 dans le forum SharePoint
    Réponses: 4
    Dernier message: 14/05/2008, 09h43
  5. [LDAP] récupération login de l'utilisateur via Active Directory
    Par kcizth dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 21/12/2005, 16h47

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