| Автор
| Сообщение |
 Kate
Постоянный участник

Возраст: 27
Знак зодиака: 
Зарегистрирован: 04.06.2007
Сообщения: 149
|
|
|
Цитата |
|
Попробовала написать клиента на PHP для LDAP сервера (AD). Вот код добавляющий новую запись в Active Directory:
| php: | $AD_SERVER = "controllerpc"; $AD_DOMAIN = "domainname.com"; $AD_DOMAIN_CN = "ou=Users,dc=domainname,dc=com"; $LOGIN = "Администратор@domainname.com"; $PASS = "domainpassword"; $user["samaccountname"]="anyaccountname"; $user["givenname"]="anygivenname"; $user["initials"]="INS"; $user["sn"]="mysurname"; $user["displayname"]="Display name"; $user["name"]=$user["displayname"]; $user["userprincipalname"] = $user["samaccountname"]."@".$AD_DOMAIN; $user["objectclass"] = array("top", "person", "organizationalPerson", "user"); $user["userpassword"] = "qwerty"; $user["userAccountControl"] = "544"; $dn=$user["displayname"].",".$AD_DOMAIN_CN; $ad=ldap_connect ("ldap://". $AD_SERVER) or die("ERROR!"); ldap_set_option($ad,LDAP_OPT_PROTOKOL_VERSION,3); ldap_set_option($ad,LDAP_OPT_REFERALS,0); $bd=ldap_bind($ad,$LOGIN,$PASS); ldap_add($ad,$dn,$user);
|
В ответ на это ПХП выдает следующее:
Warning: ldap_add() [function.ldap-add]: Add: No such object in...
В чем может быть проблема уважаемые форумчане? |
|
| В начало |
|
 |
|
|
 |
DrPass
Знающий :) /Почетный Модератор/

Возраст: 31
Знак зодиака: 
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
|
|
|
Цитата |
|
ИМХО, надо бы так: $dn="cn=".$user["displayname"].",".$AD_DOMAIN_CN; _________________ Да пребудет с вами Сила! |
|
| В начало |
|
 |
 Kate
Постоянный участник

Возраст: 27
Знак зодиака: 
Зарегистрирован: 04.06.2007
Сообщения: 149
|
|
|
Цитата |
|
DrPass,
это была опечатка с моей стороны. Разумеется я перед дисплэйнэйм "cn=" поставила, в итоге та же самая ошибка. |
|
| В начало |
|
 |
DrPass
Знающий :) /Почетный Модератор/

Возраст: 31
Знак зодиака: 
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
|
|
|
Цитата |
|
Ну а группа ou=Users,dc=domainname,dc=com вообще в каталоге существует? Нигде очепяток в имени не допустила? _________________ Да пребудет с вами Сила! |
|
| В начало |
|
 |
 Kate
Постоянный участник

Возраст: 27
Знак зодиака: 
Зарегистрирован: 04.06.2007
Сообщения: 149
|
|
|
Цитата |
|
DrPass,
Существует то существует, только та ли группа которую я имею в виду? Как я поняла ou - это имя каталога 2ого уровня (1ого - сам домен), в случае AD - это Users, Computes, Builtin, Domain Controllers и т.д. или нет? Видишь ли, я не работала раньше с LDAP на уровне программирования, а вся найденная в Инете документация по LDAP "с нуля" в общем оказалась немного странная, с одной стороны сначала дается определение LDAP, а потом сразу дается пример с использованием строки DN, предварительно лишь максимально кратко пояснив что такое ou и dc лишь в данном случае. Никакого подробного описания того, как строится DN, все возможные ее параметры (а не только использованные в приводимом примере - ou, dc и т.д.), универсальны ли они (ou, dc, ...) для всех LDAP серверов, или же только для AD и для приводимого примера и т.д.
Короче из найденной мной документации приходится изучать программирование под LDAP лишь на конкретном примере, анализируя код. |
|
| В начало |
|
 |
DrPass
Знающий :) /Почетный Модератор/

Возраст: 31
Знак зодиака: 
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
|
|
|
Цитата |
|
Там, в принципе, ничего хитрого...
ou - это Organizational Unit, группа в каталоге. Возможно, в случае AD оно будет иметь немного другой вид:
ou=Users,ou=domainname,dc=domainname,dc=com _________________ Да пребудет с вами Сила! |
|
| В начало |
|
 |
 Kate
Постоянный участник

Возраст: 27
Знак зодиака: 
Зарегистрирован: 04.06.2007
Сообщения: 149
|
|
|
Цитата |
|
| создала пробный OU под шаровым названием 123 - к нему подключилась, а вот к существующему Users почему то нет. |
|
| В начало |
|
 |
|