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 200000 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
