При аутентификации по LDAP (Active Directory, Server 2008) с сервера Apache я получаю следующее сообщение в журнале ошибок:
authentication failure for "/": Password Mismatch
Это происходит только тогда, когда пароль содержит немецкие умляуты (ä, ö, ü). После изменения пароля или попытки использовать другую учетную запись без умляутов в пароле аутентификация работает нормально.
Вот моя конфигурация:
AuthType Basic
AuthzLDAPAuthoritative off
AuthLDAPURL "ldap://[SERVER]:3268/DC=[DOMAIN]?sAMAccountName?sub?(objectClass=user)"
AuthLDAPBindDN "user"
AuthLDAPBindPassword "pass"
require valid-user
Я использую Apache2 (2.2.16-6 + squeeze1) под Debian (2.6.26-2-686). Самое смешное, что указанная выше конфигурация работала до вчерашнего дня (даже для паролей с умляутами), и я ее не трогал (клянусь ;-)). Я уже нашел других людей с той же проблемой, но без решения.
Есть ли у кого-нибудь идеи, как решить проблему или просто, что делать дальше, возможно, выявить ошибочный модуль?
С уважением, Стефан
Похоже, что где-то происходит проблема с кодировкой. Не могу сказать, где это, но могу подсказать, как его найти.
Насколько я понимаю, есть 5 мест, где кодировка могла неправильно обрабатываться или интерпретироваться. Эти:
Предполагая, что вы можете войти в Windows как пользователь, тогда мы знаем, что №5 не ваша проблема. Что вам нужно сделать, так это определить, на каком этапе пути возникает ваша проблема. Я догадываюсь, что это шаг 2 или 3, но я не могу быть уверен.
Во-первых, убедитесь, что вы либо не используете https для связи с веб-сервером, либо не используете ldaps для связи с сервером LDAP. (Возможно, вы не захотите этого для производства, но это облегчит жизнь). Теперь используйте wirehark для прослушивания трафика для двух ветвей, браузер -> Apache и Apache -> AD. Вы видите там правильную информацию?
Затем установите уровень журнала в Apache для отладки и посмотрите, что там напечатано. Это не покажет вам пароль, но на уровне отладки он должен показать вам другую информацию, такую как имя пользователя. Если вы используете поддельное имя пользователя, содержащее акценты, правильно ли они отображаются?
После того, как вы определили шаг, который нарушает кодировку, вы примерно на 90% знаете, как это исправить!