Я настраиваю аутентификацию Redmine LDAP и сталкиваюсь с некоторыми странными проблемами. У меня есть настройки и сохранены настройки, и когда я нажимаю «Тест» в меню режимов аутентификации в Redmine для этой конфигурации, появляется сообщение «Успешное соединение». Я также установил пользователя с именем пользователя, хранящимся на хосте LDAP и указанным для аутентификации с использованием настроенной аутентификации LDAP.
Однако когда я пытаюсь войти в систему как этот пользователь, это всегда терпит неудачу. Это почти как если бы он не мог должным образом связаться с сервером LDAP (даже если тест прошел успешно). Мне любопытно, что на самом деле делает этот тест, и если есть способ посмотреть где-нибудь в каком-то журнале (на самом деле ничего не видно), чтобы показать, что / почему он терпит неудачу.
Есть идеи или предложения?
На самом деле это была простая проблема с неправильным именем пользователя. Изменение его на правильный устранило проблему.
Некоторые приложения (Redmine, Квок, ...) может интегрироваться с LDAP, но для этого требуется, чтобы пользователи существовали в его базе данных. Взгляни на этот. Я изменяю import.php
скрипт для синхронизации пользователей OpenLDAP с базой данных MySQL:
В users
таблицы:
mysql> desc users;
+-------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| login | varchar(30) | YES | | | |
| hashed_password | varchar(40) | YES | | | |
| firstname | varchar(30) | YES | | | |
| lastname | varchar(30) | YES | | | |
| mail | varchar(60) | YES | | | |
| admin | tinyint(1) | YES | | 0 | |
| status | int(11) | YES | | 1 | |
| last_login_on | datetime | YES | | NULL | |
| language | varchar(5) | YES | | | |
| auth_source_id | int(11) | YES | MUL | NULL | |
| created_on | datetime | YES | | NULL | |
| updated_on | datetime | YES | | NULL | |
| type | varchar(255) | YES | MUL | NULL | |
| identity_url | varchar(255) | YES | | NULL | |
| mail_notification | varchar(255) | NO | | | |
| salt | varchar(64) | YES | | NULL | |
+-------------------+--------------+------+-----+---------+----------------+
Моя схема OpenLDAP:
dn: cn=quanta,ou=x,dc=x,dc=x
cn: quanta
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
mail: x@y.z
givenName: a
initials: b
sn: c
userPassword: {SSHA}123
Итак, я импортирую, как показано ниже:
"INSERT INTO users (login, firstname, lastname, mail, mail_notification, \
admin, status, language, auth_source_id, created_on, type) \
VALUES('" . $data[$i]["cn"][0] . "','" . $data[$i]["givenname"][0] . "',\
'" . $data[$i]["sn"][0]." ".$data[$i]["initials"][0] . "',\
'" . $data[$i]["mail"][0] . "',false,false,1,'en','1',\
'".date('Y-m-d H:m:s')."','User')";
Я также установил Incron задание делать это автоматически всякий раз, когда пользователь вставляется или обновляется в OpenLDAP:
/var/lib/ldap/*.bdb IN_MODIFY,IN_CREATE,IN_CLOSE_WRITE /usr/bin/php -q /var/www/html/import.php