Используя ext / ldap, я пытаюсь добавить записи в Active Directory. Пока я использую только один структурный объектный класс, все работает должным образом, но как только я пытаюсь добавить запись со вторым вспомогательным объектным классом, сервер сообщает об ошибке:
Сервер не желает работать; 00002040: SvcErr: DSID-030F0AA0, проблема 5003 (WILL_NOT_PERFORM), данные 0
Следующий код работает:
ldap_add($ldap, 'OU=Test,OU=Test,DC=domain,DC=example,DC=local', array(
'ou' => 'Test',
'objectClass' => 'organizationalUnit',
'l' => 'location'
));
Это не так:
ldap_add($ldap, 'OU=Test,OU=Test,DC=domain,DC=example,DC=local', array(
'ou' => 'Test',
'associatedDomain' => 'domain',
'objectClass' => array('organizationalUnit', 'domainRelatedObject'),
'l' => 'location'
));
То же самое происходит, если я пытаюсь добавить вспомогательный объектный класс к существующей записи:
ldap_mod_add($ldap, 'OU=Test,OU=Test,DC=domain,DC=example,DC=local', array(
'associatedDomain' => 'domain',
'objectClass' => 'domainRelatedObject'
));
Соответствующее сообщение об ошибке по сути то же самое
Сервер не желает работать; 00002040: SvcErr: DSID-030508F8, проблема 5003 (WILL_NOT_PERFORM), данные 0
Поскольку все остальные операции обновления и добавления работают, я думаю, проблема должна быть связана с атрибутом objectClass.
Поскольку у меня недостаточно опыта работы с Active Directory (я привык к OpenLDAP): есть ли какие-либо известные проблемы с объектными классами в Active Directory? Я что-то упустил? Существуют ли какие-либо ограничения, запрещающие добавление, например, domainRelatedObject
на organizationalUnit
? Что, черт возьми, здесь происходит ;-)?
На всякий случай, если вам интересно: domainRelatedObject
присутствует в схеме Active Directory.