Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: добавление/удаление записи в Active Directory

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
USB_user
Отправлено: 29 Января, 2010 - 09:50:17
Post Id



Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Янв. 2010  
Откуда: Киев


Помог: 0 раз(а)




Подскажите, кому приходилось работать с Active Directory из PHP
Ситуация следующая:

Есть группа: CN=TEST-Restrict,OU=Group,DC=corporate,DC=portal
Есть пользователь (существует): CN=Test User,OU=Users,DC=corporate,DC=portal

Нужно добавить данного пользователя в эту группу.

Пишу код:

PHP:
скопировать код в буфер обмена
  1. $ad2 = ldap_connect("ldap://10.91.15.15") or false;
  2. $result2 = ldap_bind($ad2, $LDAP_USER_NAME."@".$DOMAIN_NAME, $PASSWORD);
  3. $info["member"] = "CN=Test User,OU=Users,DC=corporate,DC=portal";
  4. $r=ldap_add($ad2, "CN=TEST-Restrict,OU=Group,DC=corporate,DC=portal", $info);


В результате получаю ошибку:
CODE (htmlphp):
скопировать код в буфер обмена
  1. Warning: ldap_add() [function.ldap-add]: Add: Object class violation in /usr/local/www/work_ad.php on line 4

Что не правильно???
(Добавление)
Все на третий день путем проб и ошибок проблема решена.

Если кому интересно, то причины в следующем:

1. Для добавления атрибута необходимо использовать функцию вместо

2. Выше в коде были строки для установки параметров протокола (без них не работает поиск):
PHP:
скопировать код в буфер обмена
  1. ldap_set_option($ad, LDAP_OPT_PROTOCOL_VERSION, 3);
  2. ldap_set_option($ad, LDAP_OPT_REFERRALS, 0);

если их закоментировать то запись добавляется нормально.

ВЫВОД: если в одном скрипте требуется использовать и поиск и добавление записей, то необходимо для каждой из операций использовать свой ldap_connect.
Окенчательный код выглядит так:
PHP:
скопировать код в буфер обмена
  1. $ad = ldap_connect("ldap://10.91.15.15") or false;
  2.                
  3. if ($ad) {
  4.   ldap_set_option($ad, LDAP_OPT_PROTOCOL_VERSION, 3);
  5.   ldap_set_option($ad, LDAP_OPT_REFERRALS, 0);
  6.   $result = @ldap_bind($ad, $LDAP_USER_NAME."@".$DOMAIN_NAME, $PASSWORD);
  7.   $returnVal = ($result) ? true : false;
  8. }
  9. else {
  10.   echo 'НЕУДАЧНОЕ СОЕДИНЕНИЕ С СЕРВЕРОМ<BR />';
  11. }
  12.        
  13. if ($returnVal) {
  14.   echo 'ПОДКЛЮЧЕНИЕ К ДЕРИКТОРИИ УCПЕШНО<BR />';
  15.        
  16.   // ДОБАВЛЕНИЕ/УДАЛЕНИЕ ЗАПИСИ
  17.   $ad2 = ldap_connect("ldap://10.91.15.15") or false;
  18.   $result2 = ldap_bind($ad2, $LDAP_USER_NAME."@".$DOMAIN_NAME, $PASSWORD);
  19.   $info["member"] = "CN=Test User,OU=Users,DC=corporate,DC=portal";
  20.   $r=ldap_mod_add($ad2, "CN=TEST-Restrict,OU=Group,DC=corporate,DC=portal", $info);

(Отредактировано автором: 29 Января, 2010 - 10:45:28)

 
 Top
repon
Отправлено: 26 Сентября, 2012 - 12:41:12
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)




пробую так же.. не выходит (

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. $username="bdm@kimsar";
  5. $password="******";
  6.  
  7. $ad = ldap_connect('ldap://192.168.2.1') or false;
  8.                
  9. if ($ad) {
  10.         ldap_set_option($ad, LDAP_OPT_PROTOCOL_VERSION, 3);
  11.         ldap_set_option($ad, LDAP_OPT_REFERRALS, 0);
  12.         $result = ldap_bind($ad, $username, $password);
  13.         $returnVal = ($result) ? true : false;
  14. /////////проверяем
  15.         $resultsrh = ldap_search($ad, 'dc=kimsar', '(&(cn=test)(name=test))', array('name','cn','distinguishedname'));
  16.         $entries=ldap_get_entries($ad, $resultsrh);
  17.        
  18.         for($i=0;$i<count($entries);$i++)
  19.                 echo($entries[$i]['name'][0] .'<br>'.
  20.                         $entries[$i]['distinguishedname'][0].'<br>'.
  21.                         $entries[$i]['cn'][0].'<br>' );
  22. /////////проверяем
  23. }
  24. else {
  25.         echo 'НЕУДАЧНОЕ СОЕДИНЕНИЕ С СЕРВЕРОМ<BR/>';
  26. }
  27.        
  28. if ($returnVal) {
  29. echo 'ПОДКЛЮЧЕНИЕ 1 К ДЕРИКТОРИИ УCПЕШНО<BR/>';
  30.        
  31.  
  32.         $ad2=ldap_connect("ldap://192.168.2.1") or false;
  33.         $result2 = ldap_bind($ad2, $LDAP_USER_NAME, $password);
  34.        
  35.         //      $returnVal2=($result2) ? true : false;
  36.         //      if ($returnVal2)
  37.         //              echo 'ПОДКЛЮЧЕНИЕ 2 К ДЕРИКТОРИИ УCПЕШНО<BR/>';
  38.                
  39.         //как я понял - поля = параметры нового пользователя
  40.         $info["name"] = "test1";
  41.         $info["CN"] = "test1";
  42.         $info["distinguishedname"] = "CN=test1,CN=Users,DC=kimsar";
  43.        
  44.         //пробуем добавить
  45.         $r=ldap_add($ad2,"CN=test1,CN=Users,DC=kimsar",$info);
  46. }
  47.  
  48. ?>
  49.  


на выходе:
Цитата:

test
CN=test,CN=Users,DC=kimsar
test



ПОДКЛЮЧЕНИЕ 1 К ДЕРИКТОРИИ УCПЕШНО

Warning: ldap_add() [function.ldap-add]: Add: Operations error in X:\home\repon.ru\www\pdf\add.php on line 44
 
 Top
mugik
Отправлено: 26 Сентября, 2012 - 22:26:20
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)




Цитата:
пробую так же.. не выходит (

ты че троллишь, тебе же написали:
 
 Top
repon
Отправлено: 27 Сентября, 2012 - 08:15:05
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)




mugik пишет:
Цитата:
пробую так же.. не выходит (

ты че троллишь, тебе же написали:

так ldap_mod_add - для внесения изменений... (перенос существующего пользователя в существ. группу) а я нового пользователя пытаюсь добавить...
не правильно?
 
 Top
repon
Отправлено: 01 Октября, 2012 - 15:00:32
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)




поможет кто-нибудь нового пользователя завести в AD?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB