Bei der Authentifizierung gegen LDAP (Active Directory, Server 2008) von einem Apache-Server wird im Fehlerprotokoll die folgende Meldung angezeigt:
authentication failure for "/": Password Mismatch
Dies geschieht nur, wenn das Passwort deutsche Umlaute enthält (ä, ö, ü). Nach dem Ändern des Passworts oder dem Versuch mit einem anderen Konto ohne Umlaute im Passwort funktioniert die Authentifizierung einwandfrei.
Hier ist meine Konfiguration:
AuthType Basic
AuthzLDAPAuthoritative off
AuthLDAPURL "ldap://[SERVER]:3268/DC=[DOMAIN]?sAMAccountName?sub?(objectClass=user)"
AuthLDAPBindDN "user"
AuthLDAPBindPassword "pass"
require valid-user
Ich benutze Apache2 (2.2.16-6 + Squeeze1) unter Debian (2.6.26-2-686). Das Lustige ist, dass die obige Konfiguration bis gestern funktioniert hat (auch für Passwörter mit Umlauten) und ich sie nicht angefasst habe (ich schwöre ;-)). Ich habe bereits andere Leute mit dem gleichen Problem gefunden, aber keine Lösung.
Hat jemand eine Idee, wie das Problem gelöst werden kann oder was als nächstes zu tun ist, um möglicherweise das fehlerhafte Modul zu identifizieren?
Viele Grüße, Stefan
quelle
Antworten:
Es scheint, dass irgendwo ein Codierungsproblem auftritt. Ich kann dir nicht sagen, wo es ist, aber ich kann vorschlagen, wie du es findest.
Soweit ich weiß, gibt es 5 Stellen, an denen die Codierung möglicherweise falsch behandelt oder interpretiert wird. Diese sind:
Angenommen, Sie können sich als Benutzer bei Windows anmelden, dann wissen wir, dass # 5 nicht Ihr Problem ist. Sie müssen lediglich feststellen, wo auf dem Weg Ihr Problem auftritt. Meine Vermutung ist, dass es in Schritt 2 oder 3 ist, aber ich kann nicht sicher sein.
Stellen Sie zunächst sicher, dass Sie entweder nicht https für die Kommunikation mit dem Webserver und ldaps nicht für die Kommunikation mit dem LDAP-Server verwenden. (Vielleicht wollen Sie das nicht für die Produktion, aber es macht das Leben leichter). Verwenden Sie jetzt Wireshark, um den Datenverkehr für die beiden Abschnitte Browser -> Apache und Apache -> AD zu verfolgen. Sehen Sie dort die richtigen Informationen?
Stellen Sie als Nächstes die Google-Ebene in Apache auf Debuggen ein und sehen Sie, was dort gedruckt wird. Das Passwort wird Ihnen nicht angezeigt, aber in der Debug-Ebene sollten andere Informationen wie der Benutzername angezeigt werden. Wenn Sie einen gefälschten Benutzernamen mit Akzenten verwenden, werden diese korrekt angezeigt?
Sobald Sie den Schritt identifiziert haben, der die Codierung unterbricht, sind Sie zu 90% auf dem Weg, um zu wissen, wie Sie das Problem beheben können!
quelle