У меня есть веб-сервис TestLink, работающий на сервере, и OpenLDAP, работающий на другом сервере. Между ними нет проблем с брандмауэром (мне удалось настроить Redmine на том же сервере, что и TestLink, для использования аутентификации LDAP).
Но всякий раз, когда я помещаю конфигурацию для LDAP в TestLink, TestLink перестает работать. Я понятия не имею, что происходит.
Здесь я определяю настройки LDAP в custom_config.inc.php:
$tlCfg->authentication['method'] = 'LDAP';
$tlCfg->authentication['ldap_server'] = 'serverip';
$tlCfg->authentication['ldap_port'] = '389';
$tlCfg->authentication['ldap_version'] = '2';
$tlCfg->authentication['ldap_root_dn'] = 'dc=mycompany,dc=com,dc=br';
$tlCfg->ldap_organization'] = '';
$tlCfg->authentication['ldap_uid_field'] = 'uid';
$tlCfg->authentication['ldap_bind_dn'] = 'myuser'; //Not actual login name and password, for obvious reasons
$tlCfg->authentication['ldap_bind_passwd'] = 'mypassword';
$tlCfg->authentication['ldap_tls'] = false;
$tlCfg->user_self_signup = true;
Я уверен, что OpenLDAP - это 2.X. Моя версия TestLink - 1.9.3
Что я делаю не так?
Я решил это. Были небольшие глупые ошибки.
Во-первых, как указал @Terry Gardner, я должен использовать LDAPv3:
$tlCfg->authentication['ldap_version'] = '3';
Во-вторых, эта строка была неправильной:
$tlCfg->ldap_organization'] = '';
Правильная версия будет:
$tlCfg->authentication['ldap_organization'] = '';
И, наконец, в /etc/php.ini я добавил
extension=ldap.so
Для этого мне нужно было установить пакет php-ldap из yum.
yum install php-ldap