Ошибка аутентификации с Zend_Auth и SME LDAP - PullRequest
0 голосов
/ 27 марта 2012

Я пытаюсь подключить приложение Zend к SME-серверу, на котором запущен LDAP с бэкэндом SQL.

При каждом запросе я получаю err=49, что указывает на ошибку аутентификации, но имя пользователя / паролькомбо я пытаюсь исправить.

Конфиги моего Zend-приложения настроены как:

ldap.server1.host                   = primary.example.info
ldap.server1.accountDomainName      = example.info
ldap.server1.accountDomainNameShort = example
ldap.server1.accountCanonicalForm   = 2
ldap.server1.username               = "CN=admin,DC=example,DC=info"
ldap.server1.password               = "password"
ldap.server1.baseDn                 = "DC=example,DC=info"
ldap.server1.bindRequiresDn         = true

Я пытаюсь войти в систему в формате:

Имя пользователя: Алиса
Пароль: пароль

Внутри моего AuthController функция, которую я использую для попытки аутентификации в LDAP:

protected function _process($values) {
    $auth = Zend_Auth::getInstance();

    $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/application.ini', 'production');
    $options = $config->ldap->toArray();

    $adapter = new Zend_Auth_Adapter_Ldap($options, $values['username'], $values['password']);

    $result = $auth->authenticate($adapter);

    if ($result->isValid()) {
        $user = $adapter::getAccountObject();
        $auth->getStorage()->write($user);
        return true;
    }

    return false;
}

Ошибки, которые я получаю /var/log/messages:

Mar 27 02:35:44 primary slapd[4589]: conn=1 fd=7 ACCEPT from IP=142.25.97.141:51711 (IP=0.0.0.0:389) 
Mar 27 02:35:44 primary slapd[4589]: conn=1 op=0 BIND dn="cn=admin,dc=kjenkins,dc=info" method=128 
Mar 27 02:35:44 primary slapd[4589]: conn=1 op=0 RESULT tag=97 err=49 text= 
Mar 27 02:35:44 primary slapd[4589]: conn=1 op=1 UNBIND 
Mar 27 02:35:44 primary slapd[4589]: conn=1 fd=7 closed

Я знаю, что учетные данные, которые я использую, верны, и я попытался использовать все варианты accountCanonicalForm, но ни один из них не работает.

Может кто-нибудь найти то, что яя делаю не так?

1 Ответ

0 голосов
/ 28 марта 2012

Десятичный код результата 49 указывает, что предоставленные учетные данные были неправильными (в некоторых в целях безопасности этот код результата может быть возвращен, если запись не существует в приказ ввести в заблуждение злоумышленника). Кодировщик приложения должен убедиться, что связывание выделено имя имеет правильные учетные данные путем аутентификации с использованием известного правильного инструмента, такого как ldapsearch. Например, попробуйте:

ldapsearch -h hostname -p port -D cn=admin,dc=kjenkins,dc=info -w password -b '' -s base '(&)' 

Приведенный выше поиск устанавливает соединение, изменяет состояние авторизации соединения на идентификатор авторизации cn=admin,dc=kjenkins,dc=info использует данные учетных данных, а затем извлекает атрибуты из корневого DSE. Если этот поиск успешен, то кодировщик приложения может быть уверен, что учетные данные верны.

см. Также

...