Zum Inhalt springen

authentifizierung mit eu_ldap

Erstellt am 20. August 2007 · 18 Antworten · letzte Antwort am 7. April 2009

Tags: Frage

sebastian_kay ·

hallo zusammen,

ich sitze derzeit an der konfiguration der "eu_ldap" extension und komme einfach nicht weiter... ich habe auch schon gesucht und einige threads zum thema eu_ldap gefunden, allerdings konnte mir keiner dieser threads wirklich weiter helfen...

folgende konfiguration::
- typo3 4.1.2
- eu_ldap 2.7.9
- php 5
- apache2

folgendes problem::
wir moechten die authentifizierung ueber unseren LDAP server machen ohne benutzer zu importieren (sowohl fuer das BE als auch das FE). wenn ich mittels "tcpdump" anschaue was passiert kann ich sehen, dass der LDAP server angesprochen wird und auch den entsprechenden benutzereintrag findet und zurueck sendet. das BE sagt mir (bzw. das typo3 logfile, Tools -> Log) bei einem lgoginversuch allerdings:

"username <irgendeinuser> not found"

und das FE (bzw. die newloginbox) gibt mir die typische fehlermeldung benutzername oder passwort falsch...

frage:
- funktioniert eine "reine" authentifizierung ueber einen LDAP server ueberhaupt oder muss ich zwangslaeufig benutzer in typo3 importieren?
- wenn eine authentifizierung nur mittels des LDAP servers funktioniert, woran kann dann der fehler liegen? hat jemand schonmal ein aehnliches problem gehabt?

viele gruesse

steffenk ·

die User müssen importiert werden.
Dein Fehler kann viele ursachen haben, in erster Linie bei der ldap-Anfrage.
Du solltest das per php/shell vorher testen.

sebastian_kay ·

danke erstmal fuer die antwort!

steffenk schrieb

die User müssen importiert werden.
[...]

hmm... unbefriedigend... was ich dann jetzt allerdings nicht verstehe ist, dass man ja die eu_ldap extension so konfigurieren kann, dass sie "nur" mittels LDAP authentifiziert. der konfigurationspunkt der extension nennt sich "Enable authentication against LDAP ..." und als erklaerung steht dabei "Enable authentication against LDAP only. If checked, users not found in the directory may not log on.". klingt fuer mich so, dass man durchaus eine authentifizierung nur anhand des LDAP servers durchfuehren koennte. zum anderen gibt es bei der konfiguration eines LDAP servers in einem SysFolder die option "Import/update sucessfully authenticated users automatically" was IMO bedeutet, dass typo3 erst die logindaten mit dem LDAP server abgleicht und falls dort der entsprechende benutzer gefunden wurde alle daten importiert. das muss dann ja auch erstmal auf einer "reinen" LDAP authentifizierung beruhen. oder hab ich da gerade einen denkfehler drinn???

steffenk schrieb

[...]
Dein Fehler kann viele ursachen haben, in erster Linie bei der ldap-Anfrage.
Du solltest das per php/shell vorher testen.

also die anbindung an den LDAP server funktioniert soweit. kann auch alle benutzer importieren/updaten etc. aber eben keine reine authentifizierung durchfuehren. die LDAP anfrage als solche sollte also korrekt sein.

viele gruesse

brikenv ·

Hallo sebastian_kay!
Ich denke du hast die Einstellungen einfach nicht korrekt verstanden. Also die Benutzer müssen in jedem Fall importiert werden.

sebastian_kay schrieb:
[..]der konfigurationspunkt der extension nennt sich "Enable authentication against LDAP ..." und als erklaerung steht dabei "Enable authentication against LDAP only. If checked, users not found in the directory may not log on."[..]

Diese Funktion bewirkt, wenn aktiviert, dass sich NUR noch User anmelden können, die aus LDAP importiert wurden. Das heisst, alle als Typo3 angelegten User die nicht im LDAP vorhanden sind können sich nicht mehr anmelden.

sebastian_kay schrieb:
[..]"Import/update sucessfully authenticated users automatically"[..]

Diese Funktion bewirkt, dass bei jeder Frage ein Import gestartet wird. Dies hat den Vorteil, das du dies nicht jedesmal manuel machen mußt wenn sich die LDAP-Datenbank ändert.

Ich hoffe das hat dir geholfen.

Gruß Veit

sebastian_kay ·

ok,

erstmal vielen dank euch beiden fuer eure hilfe und erklaerenden ratschlaege! ich denke ich werde mal die extension ldap_auth ausprobieren.

nochmals vielen dank, werde meine "ergebnisse" dann noch hier posten, evtl. bringts ja dann noch anderen etwas.

sebastian_kay ·
brikenv schrieb

[...]

sebastian_kay schrieb:
[..]"Import/update sucessfully authenticated users automatically"[..]

Diese Funktion bewirkt, dass bei jeder Frage ein Import gestartet wird. Dies hat den Vorteil, das du dies nicht jedesmal manuel machen mußt wenn sich die LDAP-Datenbank ändert.

[...]

also dazu haette ich jetzt doch noch ein/zwei fragen. folgendes denkproblem habe ich dabei. wenn diese funktion bewirkt, dass bei jeder anfrage (also bei jedem login-versuch) ein import/update gestartet wird muessten ja::

1.) neu in das LDAP verzeichniss eingefuegte benutzer gleichzeitig in meiner typo3 benutzerdatenbank angelegt werden. korrekt?

2.) wenn ich (sei es automatisch oder manuell) neue benutzer (sowohl fuer das BE als auch das FE) in typo3 importiere, so werden automatisch zufaellige passwoerter gesetzt. wie kann ein so importierter benutzer, ohne zugriff auf das BE zu haben und ohne zusaetzlichen administrativen aufwand, sich nun anmelden (egal of FE oder BE)? er kennt sein generiertes passwort ja nicht... das passwort muesste also von einem typo3 administrator gesetzt werden bzw. der admin muesste das generierte passwort an den neuen user "verschicken" und der benutzer muesste dann sein passwort selbst aendern. korrekt?

viele gruesse

steffenk ·

zu 1) wenn die Option "automatisch importieren" gesetzt ist, ist das so.
zu 2) siehe FAQ: there is no import of passwords but authentication is done everytime against the LDAP server.

sebastian_kay ·
steffenk schrieb

[...]
zu 2) siehe FAQ: there is no import of passwords but authentication is done everytime against the LDAP server.

hatte ich gelesen 😉. das problem ist nur, dass ich mich nur mit dem von typo3 bzw. der eu_ldap extension gesetzten, zufaelligen passwort anmelden kann. mit dem im LDAP verzeichniss gespeicherten passwort nicht! ... *sigh*

sebastian_kay ·
steffenk schrieb

hast Du die Option "Import UserGroups" gewählt und haben die User eine Gruppe ?

ja, die option "Import UserGroups" ist angewaehlt und die benutzer sind auch posixGroups:memberUid's zugeordnet. allerdings werden die benutzergruppen nicht importiert wenn ich unter dem menupunkt "Web -> LDAP Integration" die option "Frontend: Import new users from directory" waehle. ist das normal, dass dann keine usergroups angelegt werden?

viele gruesse

SCHNEIKA ·

Die komplette Konfiguration/Setup von ext:eu_ldap oder ext:ldap_auth/sync/server/lib, je nachdem was jetzt verwendet wird, wäre eventuell zur Fehlersuche hilfreich. Handelt es sich um OpenLDAP oder MS ADS?

sebastian_kay ·
SCHNEIKA schrieb

Die komplette Konfiguration/Setup von ext:eu_ldap oder ext:ldap_auth/sync/server/lib, je nachdem was jetzt verwendet wird, wäre eventuell zur Fehlersuche hilfreich. Handelt es sich um OpenLDAP oder MS ADS?

wir verwenden OpenLDAP, hier die aktuelle konfiguration von eu_ldap::

server:: ldap://xxxxx.uni-konstanz.de
port:: 389
LDAP version:: 3
base DN:: ou_fe_user, ou=typotest, dc=uni-konstanz, dc=de
filter:: uid=<search>
Type of LDAP server:: OpenLDAP
domain:: uni-konstanz.de
Use this server for:: Frontend and Backend
user:: cn=xxxxx, ou=xxxxx, dc=uni-konstanz, dc=de
password:: stimmt 😉
LDAP attribute holding the displayed user name:: cn
[...] alle anderen attribut einstellungen sind auf default [...]
use standard implementation to assign users to group - [...] posixGroup:memberUid (OpenLDAP):: true
how to match the usergroup (when not using standard implmementation):: leer
Import only users with filled email address:: true
Import additional fields [...]:: leer
Import/update sucessfully athenticated users autmatically:: true
Synchronize FE and BE users automatically [...]:: true
Import groups from LDAP:: true
Import only users which are in the following groups[...]:: leer
Timestamp in LDAP for last login:: logintime

derzeit sind wir auch einen schritt weiter gekommen. benutzer koennen inzwischen importiert werden, zumindest fuer das BE und dort koennen sich die benutzer auch mit ihrem LDAP passwort einloggen. allerdings werden die gruppen immer noch nicht importiert... hat evtl. jemand mal einen kurzen LDIF auszug fuer mich bei dem ich mal die gruppenmodelierung (eines funktionierenden systems) in LDAP ansehen kann? wuerde mir sehr weiter helfen.

viele gruesse & vielen dank an euch alle

SCHNEIKA ·
sebastian_kay schrieb

wir verwenden OpenLDAP, hier die aktuelle konfiguration von eu_ldap::

server:: ldap://xxxxx.uni-konstanz.de
port:: 389
LDAP version:: 3
base DN:: ou_fe_user, ou=typotest, dc=uni-konstanz, dc=de
filter:: uid=<search>
Type of LDAP server:: OpenLDAP
domain:: uni-konstanz.de
Use this server for:: Frontend and Backend
user:: cn=xxxxx, ou=xxxxx, dc=uni-konstanz, dc=de
password:: stimmt 😉

Der Fehler "ou_fe_user" in der baseDN ist vermutlich nur ein Schreibfehler im Forum...
Meine erste logische Frage zu dem Thema ist: Sind die User in der selben OU wie die Gruppen?

mit eu_ldap hatte ich aufgrund hierarchischer und paralleler OU keinen Erfolg beim Import von Usern, ich bekam immer einen Whitescreen.
Ich habe nun ldap_auth/sync/server/lib verwendet, da werden wenigstens alle User und Gruppenzuordnungen importiert, außer jedoch die Paßwörter...bin noch am tricksen...

shino ·
SCHNEIKA schrieb

Ich habe nun ldap_auth/sync/server/lib verwendet, da werden wenigstens alle User und Gruppenzuordnungen importiert, außer jedoch die Paßwörter...bin noch am tricksen...

eigl. sollen/sollten keine Passwörter exportiert werden, die Authentifizierung soll ja immer noch gegen den LDAP-Server realisert werden.
Man stelle sich vor der Benutzer ändert im LDAP-Verzeichnis sein Kennwort, da aber die Kennwörter nochmals in der Typo3-Datenbank enthalten sind, kann er sich nur mit dem alten Kennwort dort anmelden. Außerdem ist das sicherheitstechnisch auch nicht so günstig da ein Angreifer, der den Typo3-Server bzw. Zugriff auf die Typo3-Datenbanken hat, auch Zugang zum kompletten LDAP-Verzeichnis hat.

Gruß
shino

Sjoeren ·

Hab mal eine kleine Zwischenfrage:

Zur Automatische Autentifizierung der User, der IE kann ja die LDAP Daten weitergeben.
Wenn ja wie müsste ich "ext:eu_ldap" erweitern/einstellen,
oder kann ich "ext:ldap_auth" mit "ext:eu_ldap" kombinieren?

Einen erfolgreichen Export habe ich mit "ext:eu_ldap" hinbekommen.
Mit "ldap_*" bekomm ich keine Gruppen :-(

sebastian_kay ·
SCHNEIKA schrieb

Der Fehler "ou_fe_user" in der baseDN ist vermutlich nur ein Schreibfehler im Forum...
Meine erste logische Frage zu dem Thema ist: Sind die User in der selben OU wie die Gruppen?
[...]

ja, war ein schreibfehler, ist natuerlich "ou=fe_user"

SCHNEIKA schrieb

[...]
mit eu_ldap hatte ich aufgrund hierarchischer und paralleler OU keinen Erfolg beim Import von Usern, ich bekam immer einen Whitescreen.
Ich habe nun ldap_auth/sync/server/lib verwendet, da werden wenigstens alle User und Gruppenzuordnungen importiert, außer jedoch die Paßwörter...bin noch am tricksen...

also der import der user klappt ja inzwischen bei uns, allerdings eben nicht der import der gruppen. wir haben schon verschiedene gruppenmodelierungen in LDAP ausprobiert (hirarchisch, parallel in allen moeglichen variationen) aber die gruppen wollen einfach nicht importiert werden...

deshalb nochmal die frage an euch alle: kann mir irgendjemand bei dem der gruppenimport funktioniert mal einen kleinen LDIF auszug aus dem verwendeten LDAP verzeichniss zukommen lassen. einfach mal um zu sehen wie dort die gruppen <-> benutzer modeliert werden.

viele gruesse

sebastian_kay ·

ok, problem hat sich inzwischen geloest. es lag wirklich an der modellierung der gruppen in unserem LDAP verzeichniss. eu_ldap sucht im eintrag der posixGroup nach einer "cn", da wir in unserem LDAP posixGroup-schema aber keine "cn" fuer eine gruppe definieren koennen sondern nur eine "ou" haben wir kurzerhand den sourcecode von eu_ldap geaendert. jetzt gehts. die modifikation haben wir in der klasse::

eu_ldap/mod1/class.tx_euldap_div.php

durchgefuehrt, genauer in der methode::

function assign_groups($Server, $arrGroups, &$ldapres, &$gid, &$gname, $table, $pid) {
        //... sourcecode ...
}

es gibt allerdings noch ein anderes problem mit der "eu_ldap" extension ueber das wohl auch schon einige gestolpert sind, siehe hier::

#619821

auch um dieses problem zu loesen haben wir den sourcecode der gleichen klasse umgeschrieben. der modifizierte code findet sich in dem verlinkten thread (letzter post).

viele gruesse

denoe ·
sebastian_kay schrieb

derzeit sind wir auch einen schritt weiter gekommen. benutzer koennen inzwischen importiert werden, zumindest fuer das BE und dort koennen sich die benutzer auch mit ihrem LDAP passwort einloggen.

Hi! Wie habt ihr das Problem umschifft? Ich steht nämlich gerade vor genau diesem von Dir beschriebenen Problem! Dank und Gruß!