Hallo.
Ich habe ein Problem mit der Authentifizierung von Usern „gegen“ unser
Unternehmens-LDAP Directory, und möchte auf diesem Weg erfahren, ob es sich um
einen Bug, ein Feature oder eine Wissenslücke handelt ☺
Die Situation:
Ich habe einen Apache 2.0.41 mit mod_ldap/mod_auth_ldap
Der LDAP Server erlaubt keine anonyme Suche, weshalb ich per AuthLDAPBindDN und
AuthLDAPBindPassword einen generischen User zum Binden verwende, um danach dann
den „eigentlichen“ user zu suchen und zu Binden.
Die gute Nachricht: Es klappt.
Die schlechte: nur 5 Minuten.
Bisher haben meine Analysen ergeben, dass der LDAP Server das Binding meiner
generischen Id nach ungefähr 5 Minuten Inaktivität löst.
(Nachvollzogen mit einem LDAP-Browser)
Das Problem ist nur, das mod_auth_ldap damit scheinbar nicht umgehen kann.
In der Praxis bedeutet das, das sich die Nutzer anmelden können, und auch alles
OK ist, solange keine 5 Minuten inaktivität besteht.
Sobald dies eintritt, wird dem User die Eingabemaske für die Credentials
angezeigt.
Per Firebug habe ich aber gesehen, dass password und username übermittelt
wurden.
Im error-log ist zu lesen:
[5400] auth_ldap authenticate: user dietrich.m.3 authentication failed; URI
/php/script.gui [LDAP: ldap_simple_bind_s() failed][Unavailable], referer:
http://myserver/php/script.gui
Ich habe mal versucht die mod_ldap directiven
LDAPCacheTTL und auch LDAPOpCacheTTL auf Werte kleiner 5 Minuten (und auch nahe
0) zu setzen, um ein erneutes Bind zu erzwingen – leider ohne Erfolg.
Die Cache-Directiven scheinen keinen Einfluß auf das Binding mit der
generischen ID zu haben.
Dieses wird immer gehalten, und führt nach dem close auf Seite des LDAP-Servers
nicht zu einem Re-Bind, sondern zu einem Fehler…
Die relevanten Settings meiner httpd.conf:
LDAP Configurations
LDAPSharedCacheSize 20
LDAPCacheEntries 1024
LDAPCacheTTL 0
LDAPOpCacheEntries 1024
LDAPOpCacheTTL 100
AuthLDAPEnabled on
AuthLDAPBindDN uid=guser,ou=people,ou=firma,o=world
AuthLDAPBindPassword geheim
AuthLDAPURL
ldap://groupservice.firma.com:989/ou=people,ou=firma,o=world?extshortname
AuthName LDAP-Status
AuthLDAPAuthoritative on
Require valid-user
Ich bin für jeden Hinweis dankbar !
Regards,
Martin Dietrich