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 :

php/ldap: structure d'une entry ldap [PHP 5.4]


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Responsable de service informatique
    Inscrit en
    Mars 2003
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2003
    Messages : 99
    Points : 108
    Points
    108
    Par défaut php/ldap: structure d'une entry ldap
    bonjours,

    j'ai creer une class objet LDAP, qui gère ma connexion et tout fonctionne parfaitement. j'ai un soucis par manque de connaissance dans la structure du tableau renvoyé en résultat. en effet lorsque je souhaite dégager le nom des attributs d'une entry ldap je l'obtient avec ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $e = $ldap->getentry(0); // renvoie dans un tableau uniquement la entry 0 de ldap_getentries. 
    		for ($i =0;$i <= ($ldap->GetNbr_Attributs(0)-1); $i++) 
    		{
    			$o = $e[$i]; // $o est sencé contenir une string mais apparement c'est pas le cas, il me renvoie le nom de l'attribu sous forme de tableau...
    			echo $o; // arffiche "array"
    			echo $e[(string)$o]; //tentative d'affichage de l'attribut "$o" mais warning pas élégant et affiche le nom de l'attribut pas la valeur.
    			echo "<BR>";
    		}
    une idée lumineuse pour me permettre de transformer $o en une chaine ? pour pouvoir lister tout les attributs du tableaux et leurs valeurs sans forcement connaître au départ leurs noms?

    merci d'avance!

  2. #2
    Futur Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2012
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Si tu souhaite connaitre les OU de ton utilisateur à partir du DN d'un utilisateur LDAP tu peux faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $ls_ou_userldap = array(); // va contenir les OU de l'utilisateur
     
    $dn = $enregs[$i]["distinguishedname"][0]; // $dn = "CN=NOM Prenom,OU=MyOU,OU=MyOU2,DC=domhae,DC=fr"
     
    // On sépare le CN de la liste des OU
    $tampon1 = explode(",", $dn, 2); // retourne [0] => CN=NOM Prenom [1] => "OU=MyOU,OU=MyOU2,DC=domhae,DC=fr"
    $ls_ou_userldap = explode(',', $tampon1[1], -2); // On sépare la liste des OU de "DC=domhae,DC=fr"
    for ($i = 0; $i < count($ls_ou_userldap); $i++) {
        $ls_ou_userldap[$i] = substr($ls_ou_userldap[$i], 3); // On fait en sorte de ne recuperer que le nom de l'OU (on retire "OU=") et on ajoute à un tableau
    }
     
    print_r($ls_ou_userldap); // affiche toutes les OU de ton user LDAP
    J'espère que ce code va pouvoir t'aider

  3. #3
    Membre régulier
    Profil pro
    Responsable de service informatique
    Inscrit en
    Mars 2003
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2003
    Messages : 99
    Points : 108
    Points
    108
    Par défaut
    merci, mais pas vraiment pour mon cas de figure, j'ai trouvé bien plus simple pour trouver une OU dans le dn, il suffit de tester la présence d'une sous chaine dans la string "dn" : ('OU='.$nomOU), pour ma part c'est tres suffisant pour savoir dans quel catégorie d'utilisateur je me trouve. mais merci quand même, ça me sera surement utile pour autre chose, le transfert de variable vers la page http suivante par exemple (encore qu'il existe implode() pour ca).

    comment je fais pour accéder aux noms des attributs en string:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $a = array(0=>array('pp'=>'TOTOTOTOTOOT'));
      $p = $a[0];
      echo $p;
      echo $a[$p];
    ici c'est un mauvais exemple, mais ca montre ce que je cherche a faire avec le resultat de get entries.. (me dites pas $e[0]['dn'], je suis un niveau plus bas car $e=$resultat_getentries[0] et $e['dn'] fonctionne parfaitement bien)
    merci d'avance..

  4. #4
    Membre régulier
    Profil pro
    Responsable de service informatique
    Inscrit en
    Mars 2003
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2003
    Messages : 99
    Points : 108
    Points
    108
    Par défaut
    ca y est j'ai enfin acces au contenu, je me rend donc compte que mon probleme c'est plutot la gestion des tableaux... merci la fonction print_r($tableaux)

    voici un exemple de structure, d'une entry ldap retourné par active directory:
    Array (
    [objectclass] => Array ( [count] => 4 [0] => top [1] => person [2] => organizationalPerson [3] => user )
    [0] => objectclass
    [cn] => Array ( [count] => 1 [0] => stage )
    [1] => cn
    [givenname] => Array ( [count] => 1 [0] => stage )
    [2] => givenname
    [distinguishedname] => Array ( [count] => 1 [0] => CN=stage,OU=LPA,OU=EPN,OU=GP_ADMIN,DC=adm,DC=loc )
    [3] => distinguishedname
    [instancetype] => Array ( [count] => 1 [0] => 4 )
    [4] => instancetype
    [whencreated] => Array ( [count] => 1 [0] => 20110627132031.0Z )
    [5] => whencreated
    [whenchanged] => Array ( [count] => 1 [0] => 20120621073516.0Z )
    [6] => whenchanged
    [displayname] => Array ( [count] => 1 [0] => stage )
    [7] => displayname
    [usncreated] => Array ( [count] => 1 [0] => 185819 )
    [8] => usncreated
    [usnchanged] => Array ( [count] => 1 [0] => 486357 )
    [9] => usnchanged
    [name] => Array ( [count] => 1 [0] => stage )
    [10] => name
    [objectguid] => Array ( [count] => 1 [0] => ðåžjù@•ƒ;œYH )
    [11] => objectguid
    [useraccountcontrol] => Array ( [count] => 1 [0] => 66048 )
    [12] => useraccountcontrol
    [badpwdcount] => Array ( [count] => 1 [0] => 0 )
    [13] => badpwdcount
    [codepage] => Array ( [count] => 1 [0] => 0 )
    [14] => codepage
    [countrycode] => Array ( [count] => 1 [0] => 0 )
    [15] => countrycode
    [badpasswordtime] => Array ( [count] => 1 [0] => 129798125146857327 )
    [16] => badpasswordtime
    [lastlogoff] => Array ( [count] => 1 [0] => 0 )
    [17] => lastlogoff
    [lastlogon] => Array ( [count] => 1 [0] => 129852651719024456 )
    [18] => lastlogon
    [pwdlastset] => Array ( [count] => 1 [0] => 129768755621839253 )
    [19] => pwdlastset
    [primarygroupid] => Array ( [count] => 1 [0] => 513 )
    [20] => primarygroupid
    [objectsid] => Array ( [count] => 1 [0] => Qe°ÌÛ¥@ Ê )
    [21] => objectsid
    [accountexpires] => Array ( [count] => 1 [0] => 9223372036854775807 )
    [22] => accountexpires
    [logoncount] => Array ( [count] => 1 [0] => 62 )
    [23] => logoncount
    [samaccountname] => Array ( [count] => 1 [0] => stage )
    [24] => samaccountname
    [samaccounttype] => Array ( [count] => 1 [0] => 805306368 )
    [25] => samaccounttype
    [userprincipalname] => Array ( [count] => 1 [0] => stage@adm.loc )
    [26] => userprincipalname
    [objectcategory] => Array ( [count] => 1 [0] => CN=Person,CN=Schema,CN=Configuration,DC=adm,DC=loc )
    [27] => objectcategory
    [lastlogontimestamp] => Array ( [count] => 1 [0] => 129847377169058221 )
    [28] => lastlogontimestamp
    [count] => 29
    [dn] => CN=stage,OU=LPA,OU=EPN,OU=GP_ADMIN,DC=adm,DC=loc )

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

Discussions similaires

  1. perl et php pour une connexion ldap
    Par youssef147 dans le forum SGBD
    Réponses: 0
    Dernier message: 23/04/2010, 12h38
  2. [LDAP] déplacer une Entry
    Par guilopouloos dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 03/06/2009, 16h54
  3. [LDAP] Création d'une organisation
    Par podz dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 14/06/2006, 15h44
  4. Problème d'accès à une base LDAP
    Par Longrais dans le forum Réseau
    Réponses: 7
    Dernier message: 30/01/2006, 11h23
  5. [Sécurité] [ldap] Connexion à une base
    Par Longrais dans le forum Langage
    Réponses: 2
    Dernier message: 27/01/2006, 23h40

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