Как изменить пароль LDAP с помощью Zend - PullRequest
1 голос
/ 23 декабря 2009

Я работаю с Zend Framework, PHP, Ldap на Ubuntu. Я аутентифицирую пользователей из ldap с использованием библиотеки Zend. Теперь я хочу изменить пароли пользователя ldap с помощью Zend. Любая идея?

Это метод, который я использую для получения адаптера Zend-аутентификации. Он работает отлично, и пользователи проходят проверку подлинности с помощью этого адаптера.

public function getAuthAdapter(array $params)
{
        $front = Zend_Controller_Front::getInstance();

        $options = $front->getParam('bootstrap')->getOption('ldap');
        $params['username'] = split( "@" , $params['username'] );           
        $username = 'cn=' . $params['username'][0] . ',' . $options['server1']['baseDn'];                       
        $adapter = new Zend_Auth_Adapter_Ldap( $options, $username, $params['password']);

        $adapter->setIdentity( $params['username'] );
        $adapter->setCredential( $params['password'] );

        return $adapter;
} 

Теперь, как изменить пароли ldap? Спасибо

Ответы [ 2 ]

3 голосов
/ 30 июля 2011
$ldap=new Zend_Ldap($options);
    $ldap->bind();      
    $entry=$ldap->getEntry($user->dn);
    $entry['userpassword'][0]=$newpassword;
    $ldap->save($user->dn, $entry);

Вот так у меня получилось! Обратите внимание, что я не прописывал пароль перед отправкой, но сервер сохранил его с правильной надписью.

2 голосов
/ 21 мая 2010

Используйте Zend_Auth_Adapter_Ldap для аутентификации входа в систему и т. Д. С активным каталогом.

Для целей администрирования ldap используйте Zend_Ldap.

Прочитайте документацию Zend об API Zend_Ldap, в частности, следующую информацию

Zend_Ldap save (строка | Zend_Ldap_Dn $ dn, массив $ entry)

Сохраняет запись, обозначенную $ dn, с помощью его атрибуты $ entry в LDAP дерево. Выдает исключение Zend_Ldap_Exception, если запись не может быть сохранена. это Метод решает, запрашивая LDAP дерево, если запись будет добавлена ​​или обновлен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...