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 !