Apache > LDAP > Extended search mit caseExactMatch bei

Alles, was den Apache betrifft, kann hier besprochen werden.

Apache > LDAP > Extended search mit caseExactMatch bei

Postby ems » 02. October 2007 09:00

Hallo,

wir nutzen einen Apache 2.2.4 und openldap 2.3.38 auf Unix (Solaris). Das klappt auch alles wunderbar. Somit erstmals kein Konfig-Problem.

Einziges Problem dabei ist, dass in openldap die UserId (uid) NICHT case-sensitiv ist.

Im ldapsearch gibts dazu mit der Option -s z.B ....-s one "uid:caseExactMatch:=user4711

die Möglichkeit ein sog. Extended Search durchzuführen. Das klappt ebenfalls wunderbar. User user4711 ist dann ein anderer als User4711.

In der vorherigen opnldap konnt man das core.schema noch ändern (wird zwar dringend abgeraten, hatte aber bei uns Funktioniert und damit war uid case-sensitiv). In der 2.3.38 sind Teile vom core.schema (insb. für die uid) im source-Code hinterlegt. Und den möchte ich ungern ändern. Weil ich das dann bei jeder neuen ldap Version nachziehen müsste.

Und weil es mit ldapsearch mit Extended Filter eine Möglichkeit gibt, müsste das doch auch der Apache können.

Die Frage ist nur, WIE sage ich das dem Apache ????

Folgende Tests habe ich gemacht mit folgendem Ergebnis

1. Mit AutLdapurl und der Angabe dieses Filter der auf der Commandline per ldapsearch funktioniert (PS: wir nutzen nicht den Defaultport sondern einen high-Port weil Apache/ldap nicht als root, sondern als Funktionsuser läuft. Und der kann/darf nur "highport")

............
AuthName "Test"
AuthType Basic
AuthBasicProvider ldap
AuthzLDAPAuthoritative on
AuthLDAPURL ldaps://test.mydomain:3443/ou=Benutzer, ... ctMatch:=*)
AuthLDAPBindDN uid=binduser,ou=LDAPADM,dc=mydomain,dc=de
AuthLDAPBindPassword üxelbrüxelgeheim
order allow,deny
allow from all
require valid-user
......

Bekomme ich im Apache diesen Fehler (Bad search filter)

[Tue Oct 02 07:43:47 2007] [debug] mod_authnz_ldap.c(376): [client 1.2.3.4] [45298] auth_ldap authenticate: using URL ldaps://test.mydomain:3443/ou=Benutzer, ... ctMatch:=*)
[Tue Oct 02 07:43:47 2007] [warn] [client 1.2.3.4] [45298] auth_ldap authenticate: user user4711 authentication failed; URI /test [ldap_search_ext_s() for user failed][Bad search filter]


Und wenn ich das in der Direktive ...require .... mache, (egal ob ldap-attribue oder ldap-filter) bekomme ich diesen Fehler (undefined attribute type


AuthLDAPURL
ldaps://test.mydomain/ou=Benutzer,dc=mydomain,dc=de?uid?
......
require ldap-attribute uid:caseExactMatch:=*
or
require ldap-filter uid:caseExactMatch:=*

[Tue Oct 02 07:48:46 2007] [debug] mod_authnz_ldap.c(376): [client 1.2.3.4] [65643] auth_ldap authenticate: using URL ldaps://test.mydomain/ou=Benutzer,dc=mydomain,dc=de?uid?
[Tue Oct 02 07:48:47 2007] [debug] mod_authnz_ldap.c(475): [client 1.2.3.4] [65643] auth_ldap authenticate: accepting user4711
[Tue Oct 02 07:48:47 2007] [debug] mod_authnz_ldap.c(754): [client 1.2.3.4] [65643] auth_ldap authorise: checking attribute uid:caseExactMatch: has value *
[Tue Oct 02 07:48:47 2007] [debug] mod_authnz_ldap.c(768): [client 1.2.3.4] [65643] auth_ldap authorise: require attribute: authorisation failed [Comparison complete][Undefined attribute type]
[Tue Oct 02 07:48:47 2007] [debug] mod_authnz_ldap.c(847): [client 1.2.3.4] [65643] auth_ldap authorise: authorisation denied


Frage: Wie kann ich den Apache dazu bringen, dass er die User-ID (uid) von LDAP case-sensitiv prüft ?

Vielen Dank.
ems
 
Posts: 1
Joined: 02. October 2007 08:53

Return to Apache

Who is online

Users browsing this forum: No registered users and 193 guests