php - ldap - ajout d'un nouveau contact
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:
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.