bonjour,

j'ai un gros soucis avec l'ajout d'un ... contact dans ldap. Si je veux ajouter un nouveau User, je change normalement juste l'objectclass et ça devrait marché.
Mon script en vbs ajoute mon contact sans aucun soucis...

voici mon script en php:
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
 
<?php
// bind is ok
//-----------------------------------------------
// Variables de connection
$Conf_LDAP_Server    = 'xxx.xxx.xxx.xxx:389';
//-----------------------------------------------
// Initialisation des variables
$ldap_server = "ldap://".$Conf_LDAP_Server;
 
$auth_user = 'my user';
$auth_pass = 'my pass';
 
$connect = ldap_connect($ldap_server);
if($connect)
      echo '<p>connect ok</p>';
else
      echo '<p>connect Nok</p>';
 
if (ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3))
      echo '<p>Version LDAPv3</p>';
else
      echo '<p>Impossible de modifier la version du protocole à 3</p>';
 
if (ldap_set_option($connect, LDAP_OPT_REFERRALS, 0) )
      echo '<p>LDAP_OPT_REFERRALS ok</p>';
else
      echo '<p>LDAP_OPT_REFERRALS Nok</p>';
 
$CN = 'user test';
$Mail ='usertest@test.be';
$givenName='user test';
$sn='user test';
$legacyExchangeDN="/o=PCF/ou=Premier groupe administratif/cn=Recipients/cn=".$CN;
$mailNickname='usertest';
$displayName='user test';
$targetAddress='SMTP:usertest@test.be';
$proxyAddresses ='SMTP:usertest@test.be';
$sAMAccountName=  'user test';
 
$bind = ldap_bind($connect, $auth_user, $auth_pass);
if($bind)
         {
       echo '<p>bind ok</p>';
          $ldaprecord['CN']=$CN;
          $ldaprecord['givenName']=$givenName;
          $ldaprecord['sn']=$sn;
          $ldaprecord['mail']=$Mail;
          $ldaprecord['mailNickname']=$mailNickname;
          $ldaprecord['displayName']=$displayName;
          $ldaprecord['targetAddress']=$targetAddress;
          $ldaprecord['proxyAddresses']=$proxyAddresses ;
          $ldaprecord['sAMAccountName']=$sAMAccountName;
 
          $ldaprecord['legacyExchangeDN']=$legacyExchangeDN;
 
          // attributs ne changeant pas
          $ldaprecord['MSExchHideFromAddressLists']='TRUE';
          $ldaprecord['mAPIRecipient']='FALSE';
          $ldaprecord['objectclass'][0] = "top";
          $ldaprecord['objectclass'][1] = "person";
          $ldaprecord['objectclass'][2] = "organizationalPerson";
          $ldaprecord['objectclass'][3] = "contact"; // ===> si je mets là "user" // au lieu de "contact" alors pas de soucis mais ce n'est pas ce que je veux..
 
 
          echo "<br>".$dn."<br>";
         $dn = 'CN='.$CN.',OU=ouParlementairesTest,OU=ouContacts,DC=test,DC=test,DC=test';
 
          $r = ldap_add($connect, $dn, $ldaprecord);
 
         }
else
      echo '<p>bind Nok</p>';
 ?>
voici ce que ça me retourne:

connect ok
Version LDAPv3
LDAP_OPT_REFERRALS ok
bind ok


Warning: ldap_add() [function.ldap-add]: Add: Server is unwilling to perform in /var/www/test/ldap_add1.php on line 68

je dois avouer que les tutos d'ici et d'ailleurs m'ont bien aidé à réaliser ce script mais pour le contact, là je sèche...

merci d'avance,

R.D.