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 :

[POO] Créer un user dans une Active Directory (LDAP)


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut [POO] Créer un user dans une Active Directory (LDAP)
    Bonjour,
    J'essaye de créer un utilisateur dans une Active directory en utilisant le protocol LDAP. J'arrive à me connecter en m'identifiant en tant qu'Administrateur, cependant je peux pas créer l'utilisateur "Jean Dupont"
    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
    <?php
    $ds=ldap_connect("ldap://tfe.isims.be");
    if ($ds) {
      // Connexion avec une identité qui permet les modifications
      ldap_bind($ds, "Administrateur@isims.be", "admin");
      // prepare les données
        $info["cn"]="Jean Dupont";
        $info["sn"]="Jean";
        $info["mail"]="jeand@serveur.mail.com";
        $info["objectclass"]="personne";
        // Ajoute les données au dossier
        $r=ldap_add($ds, "cn=Jean Dupont, o=isims, c=be", $info); /*line23*/
      ldap_close($ds);}
    else echo 'Impossible de se connecter au serveur LDAP';
    ?>
    Voilà l'erreur qu'il m'affiche
    Warning: ldap_add(): Add: No such attribute in c:\program files\easyphp1-8\www\test3.php on line 23
    Une idée?

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 30
    Par défaut
    essai avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $info["objectClass"][0]='top';
        $info["objectClass"][1]='person';
        $info["objectClass"][2]='organizationalPerson';
        $info["objectClass"][3]='user';
    objectclass spécifie toute l'arborescence des objets

    oublie pas de modifier le useraccountcontrol si tu veux pas que ton user soit desactivé : http://support.microsoft.com/default...b;en-us;305144

    Tu dois avoir un souci aussi avec ton arborescence ...

    Sous l'AD, les entrées de base sont des DC
    Si ton domaine est truc.local :
    "cn=JeanDupont, cn=Users, dc=truc, dc=local"
    Users est le dossier par defaut de tes utilisateurs c'est un CN

    Pour voir ces arborescences utilise "ADSI Edit" fournit sur le cd de windows server dans les "Windows xxx Support Tools"

  3. #3
    Invité
    Invité(e)
    Par défaut
    J'ai vérifié l'arborescence,et j'ai ajouté ta partie:
    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
    <?php
    $ds=ldap_connect("ldap://tfe.isims.be");
    // on suppose que le serveur LDAP est sur le serveur local
    if ($ds)
    {
    // Connexion avec une identité qui permet les modifications
     ldap_bind($ds, "Administrateur@isims.be", "admin");
    // prepare les données
     $info["cn"]="dupont";
     $info["sn"]="jean";
     $info["userPassword"]="dupont";
     $info["objectClass"][0]="top";
     $info["objectClass"][1]="person";
     $info["objectClass"][2]="organizationalPerson";
     $info["objectClass"][3]="user";
    // Ajoute les données au dossier
     $r=ldap_add($ds, "CN=dupont,CN=Users,DC=isims,DC=be", $info);
     ldap_close($ds);
    }
    else
    {
      echo 'Impossible de se connecter au serveur LDAP';
    }
    ?>
    l'erreur:
    Warning: ldap_add(): Add: Constraint violation in c:\program files\easyphp1-8\www\test3.php on line 23
    En fait, ça sert à quoi de définir "objectclass" ?
    ?
    Dernière modification par Invité ; 07/06/2006 à 04h26.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 30
    Par défaut
    ObjectClass c'est un des champs obligatoire, il défini ce qu'est l'objet ! Organisation, groupe, user, computer, contact ...

    En spécifiant l'ObjectClass utilisé plus haut, tu spécifie que ce que tu créé est un user ,user dérive de organizationalPerson qui dérive de person qui dérive de top.
    Il y a moyen d'étendre le modele, mais il faut faire une demande à Microsoft avec de long délai d'attente ...

    Mon soucis c'est que là je comprends pas, pour l'objet computer comme ça ça marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            $info["objectClass"][0]='top';
    	$info["objectClass"][1]='person';
    	$info["objectClass"][2]='organizationalPerson';
    	$info["objectClass"][3]='user';
    	$info["objectClass"][4]='computer'
    Pour le user il suffit de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $info["objectClass"][0]='user';

  5. #5
    Invité
    Invité(e)
    Par défaut
    Moi ce que je veux crèer c'est un compte genre "iaco@isims.be" donc c'est un user, alors que toi tu me parle de "computer"...
    Mais dans tous les cas, aucun des deux fonctionnent toujours la même erreur. Je suis vraiment perdu là, je dois absolument trouver une solution avant la semaine prochaine

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 30
    Par défaut
    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
    <?php
    $ds=ldap_connect("xx.xx.xx.xx");
    // on suppose que le serveur LDAP est sur le serveur local
    if ($ds)
    {
    // Connexion avec une identité qui permet les modifications
     ldap_bind($ds, "xxx@xxx.xxx", "xxxx");
    // prepare les données
     $info["sn"]="jean";
     $info["userPassword"]="dupont";
     $info["objectClass"][0]="user";
    // Ajoute les données au dossier
     $r=ldap_add($ds, "CN=dupont,CN=Users,DC=maquette,DC=local", $info);
     ldap_close($ds);
    }
    else
    {
      echo 'Impossible de se connecter au serveur LDAP';
    }
    ?>
    Chez moi ça marche

Discussions similaires

  1. Afficher une recherche faite dans l'active directory
    Par clemantine dans le forum ASP.NET
    Réponses: 4
    Dernier message: 18/06/2012, 19h12
  2. Réponses: 0
    Dernier message: 26/04/2010, 12h10
  3. [LDAP] Faire une recherche dans un Active directory
    Par bullrot dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 22/04/2009, 21h39
  4. Récuppérer une IP dans l'Active Directory
    Par momoh dans le forum VB.NET
    Réponses: 0
    Dernier message: 06/02/2009, 12h27
  5. Comment créer un commentaire dans une cellule d'Excel ?
    Par WebPac dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 26/04/2005, 09h23

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