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 :

ldap_add Object Class violation


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2011
    Messages : 146
    Points : 64
    Points
    64
    Par défaut ldap_add Object Class violation
    Bonjour à tous, je me permets de poster car ça fait deux jours que je rame sur ce problème sans avancer d'un pas..

    Alors voilà, j'essaie d'ajouter un utilisateur à mon annuaire ldap en PHP.

    Pour cela, j'utilise la fonction ldap_add. Voici comment je procède :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    $server = "monIP";
     
    $port = "monPort";
     
    $ldapdn="uid=diradmin,cn=users,dc=mon,dc=serveur,dc=com";
     
    $ldappassword = 'monPassword';
     
    //Connexion
    $ldapconn = ldap_connect($server, $port);
    ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
     
    //Liaison
    if($ldapconn == 1){
        $ldapbind= ldap_bind($ldapconn, $ldapdn, $ldappassword);
     
        if($ldapbind){
     
    	    //Ajout
    	    $newUser['objectClass'][0]= 'inetOrgPerson';
    	    $newUser['objectClass'][1]= 'posixAccount';
    	    $newUser['objectClass'][2]= 'shadowAccount';
    	    $newUser['objectClass'][3]= 'apple-user';
    	    $newUser['objectClass'][4]= 'extensibleObject';
    	    $newUser['objectClass'][5]= 'organizationalPerson';
    	    $newUser['objectClass'][6]= 'top';
    	    $newUser['objectClass'][7]= 'person';
    	    $newUser['uid']= 'test';
    	    $newUser['altSecurityIdentities']= 'Kerberos:test@MON.SERVEUR.COM';
    	    $newUser['userPassword']= 'test';
    	    $newUser['givenName']= 'Test';
    	    $newUser['cn']= 'test';
     
    	    if(!ldap_add($ldapconn, "uid=test,cn=users,dc=mon,dc=serveur,dc=com", $newUser)){
    		    echo '<h3>Echec de l\'ajout du nouvel utilisateur.</h3>';
    	    }
     
    	    ldap_unbind($ldapconn);
        }
        else{
            echo "<h3>Echec du bind.</h3>";
        }
    }
    else{
         echo '<h3>Echec de connexion au serveur.</h3>';
    }
     
    ldap_close($ldapconn);
    J'ai renseigné les informations en suivant le modèle d'un enregistrement déjà existant dans l'annuaire.

    Seulement voilà l'erreur que j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: ldap_add() [function.ldap-add]: Add: Object class violation in /Applications/MAMP/htdocs/test.php on line 61
    Je précide aussi que je n'ai pas renseigné tous les champs présents dans les enregistrements de l'annuaire car il y a des champs que je ne peux pas renseigner (du genre des id générés aléatoirement par le serveur ou autre). Et enfin, mon annuaire LDAP est sous OSX Server.

    Voilà, j'ai fait énormément de recherches et d'essais mais je n'y arrive décidément pas..

    En espérant trouver de l'aide, merci d'avance à vous !

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    pourquoi utiliser MAMP ? y'a déjà un serveur PHP sous OSX

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2011
    Messages : 146
    Points : 64
    Points
    64
    Par défaut
    J'utilise MAMP car je fais mes tests en local sur ma machine. Je publie les fichiers sur le serveur seulement lorsqu'ils sont fonctionnels.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par yeste64 Voir le message
    J'utilise MAMP car je fais mes tests en local sur ma machine.
    y'a déjà un serveur locale sur OSX

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2011
    Messages : 146
    Points : 64
    Points
    64
    Par défaut
    Ah pardon, j'avais mal compris, je pensais que tu parlais du serveur. Bref, j'utilise MAMP, c'est comme ça au boulot, je vais pas leur demander de changer leurs façons de travailler pour moi haha

    Sinon, je ne pense pas que ça puisse avoir un rapport avec mon problème si ?

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    l'ordre de objectClass ne semble pas être correct

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2011
    Messages : 146
    Points : 64
    Points
    64
    Par défaut
    Lorsque je liste le objectClass d'un enregistrement déjà présent dans l'annuaire, j'obtiens ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objectclass : Array ( [count] => 8 [0] => inetOrgPerson [1] => posixAccount [2] => shadowAccount [3] => apple-user [4] => extensibleObject [5] => organizationalPerson [6] => top [7] => person )

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    que disent les logs ?

  9. #9
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2011
    Messages : 146
    Points : 64
    Points
    64
    Par défaut
    J'ai affiché les logs de MAMP et je vois exactement la même erreur que sur ma page PHP.

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    les logs LDAP

  11. #11
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2011
    Messages : 146
    Points : 64
    Points
    64
    Par défaut
    Où se trouvent les logs LDAP sur osx server ? Je n'arrive pas à les trouver..

  12. #12
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par yeste64 Voir le message
    Où se trouvent les logs LDAP sur osx server ? Je n'arrive pas à les trouver..
    Dans la consoel des log, regarde dans Tous les messages

  13. #13
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2011
    Messages : 146
    Points : 64
    Points
    64
    Par défaut
    C'est bon, j'y suis arrivé, merci beaucoup !

    En fait, il fallait que je renseigne des attributs que je n'avais pas renseignés, les voici :
    sn, gidNumber, homeDirectory et uidNumber.

    Seulement, j'ai vu que sn, gidNumber et homeDirectory étaient tous les mêmes pour les autres entrée de l'annuaire, j'ai donc remis les même ici. Seulement, comment savoir quel est le uidNumber ? Car dans les autres entrées de l'annuaire, il change à chaque fois.. Comment savoir que tel ou tel uidNumber n'est pas déjà présent dans l'annuaire lors de l'ajout ?

Discussions similaires

  1. Créer un composant/object/classe ?
    Par Au2laDeNosReves dans le forum Windows Forms
    Réponses: 7
    Dernier message: 19/01/2010, 10h46
  2. Que veut dire appel à Object.class
    Par GroRelou dans le forum Langage
    Réponses: 4
    Dernier message: 02/07/2009, 13h49
  3. Consommer un WebService dans un object COM - violation d'access
    Par akbar dans le forum API, COM et SDKs
    Réponses: 11
    Dernier message: 09/02/2009, 19h11
  4. [LDAP] ldap_mod_replace et erreur object Class violation
    Par rochenico dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 13/09/2007, 12h42
  5. [AD] Object Class Violation avec Active Directory
    Par toto019 dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 25/07/2006, 11h02

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