Hallo ihrs ,
gibts ein Modul das meine Mitglieder gegen ein Microsoft Ldap authentifizieren kann ?
Ich bin leider nicht fitt genug das mit den Hooks abzubilden. Ich baue hier nur ein kleines Intranet auf.
Hallo ihrs ,
gibts ein Modul das meine Mitglieder gegen ein Microsoft Ldap authentifizieren kann ?
Ich bin leider nicht fitt genug das mit den Hooks abzubilden. Ich baue hier nur ein kleines Intranet auf.
Geändert von Membaris (27.07.2015 um 14:53 Uhr)
Ich hab mir dieses Modul installiert : https://contao.org/en/extension-list...020209.en.html
Auch die Konfiguration in der config.php ist angepasst aber ich habe keine Ahnung wie ich das nun einstellen kann das der Benutzer gegen das AD authentifiziert wird.
Ich bekomme diesen Fehler hier :
Kann damit jemand etwas anfangen ? Ich nicht ...Code:[27-Jul-2015 16:49:29 Europe/Berlin] PHP Warning: ldap_search(): Search: Operations error in /var/www/intranet/system/modules/au-ldap_authentication/LdapAuthentication.php on line 90 #0 [internal function]: __error(2, 'ldap_search(): ...', '/var/www/intran...', 90, Array) #1 /var/www/intranet/system/modules/au-ldap_authentication/LdapAuthentication.php(90): ldap_search(Resource id #64, 'DC=DOMNAME,DC=la', '(CN=BENUTZER)', Array) #2 /var/www/intranet/system/modules/core/library/Contao/User.php(410): LdapAuthentication->authenticate('BENUTZER', 'PASSWORT', Object(Contao\BackendUser)) #3 /var/www/intranet/system/modules/core/controllers/BackendIndex.php(37): Contao\User->login() #4 /var/www/intranet/contao/index.php(19): Contao\BackendIndex->__construct() #5 {main}
Was man bei der Suche nach der Fehlermeldung immer wieder trifft:
Ist dein Ldap Server ein Windows 2003 Server?Code:If you try to perform the searches on Windows 2003 Server Active Directory or above, it seems that you have to set the LDAP_OPT_REFERRALS option to 0: ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0); ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3); Without this, you will get "Operations error" if you try to search the whole AD (using root of the domain as a $base_dn).
Grüße, BugBuster"view source" is your guide.Danke an alle Amazon Wunschlisten Erfüller
Ne ist ein Windows 2012 Server werde ich morgen aber dennoch mal versuchen.
Jetzt muss ich dann nur noch schauen wo ich das reinschreiben muss .....
Im Orginalthread dieser Info las ich das so, das ab 2003 dies nötig wäre. Bei den älteren wäre das optional.
Ob das hilft kann ich aber nicht versprechen.
Laut Quelltext kann man Optionen setzen in $GLOBALS['TL_CONFIG']['ldapAuth_option'], kann sein das dies auch irgendwo per Formular der Erweiterung geht.
Ab Zeile 63 werden die geparst, in Zeile 83 gesetzt.
Geändert von BugBuster (27.07.2015 um 18:06 Uhr)
Grüße, BugBuster"view source" is your guide.Danke an alle Amazon Wunschlisten Erfüller
Das war es leider auch nicht. Habe jetzt die 2 Werte eingetragen läuft aber immer noch auf die selbe Fehlermeldung raus.
Die Anbindung ist korrekt läuft in 2 anderen Webanwendungen auch so. Noch wer eine Idee ?
Wenn man die LDAP Auth mal aufmacht steht in Zeile 96
Ich finde aber nicht wo $user_dn gesetzt wird vielleicht liegt hier der FehlerCode:[$user_dn = ldap_get_dn($conn, $user_entry)) !== false
EDIT : Ist nur der übergebene Name ...
Geändert von Membaris (28.07.2015 um 07:45 Uhr)
Moin wir haben hier ein Ldap Modul für die Version 3.2 laufen.
Obs unter der 3.5 funktioniert kein plan!
Was es aktuell kann:
Schauen ob der User exisitert --- wenn ja... Schauen ob das Passwort im LDAP mit dem eingegeben stimmt.
Existiert der User nicht - Dann wird in Contao ein neuer User angelegt.
Vielleicht könntest du mir das Modul mal zukommen lassen, damit ich das unter Contao 3.5 mal testen kann
Anbei ...
einfach mal Testen... wenn generell noch jemanden etwas auffällt.... auch einfach bescheid geben
Geändert von Acta (28.07.2015 um 13:15 Uhr)
Achso.. du musst natürlich mit dem Autoload Creator die Autoload datei erstellen.
Ok ich hab die Autoload erstellt , leider kann ich mich nicht mit einem Benutzer einloggen.
Hast du ein paar Tipps fürs debugging ? Ich hab keine Ahnung ob der überhaupt in die Funktion geht.
Eingestellt hab ich den LDAP - Server und den LDAP - Import müssen die Benutzer Mitglied in einer bestimmten Gruppe sein ?
oh sorry
ja da war noch was hinterlegt.
Einfach mal die angehängte Version verwenden. Danke!
Geändert von Acta (28.07.2015 um 15:50 Uhr)
Naja erstmal hab ja ich Dir zu danken
Leider funktioniert das trotzdem nicht mir kommt es so vor als ob die Funktion gar nicht erst aufgerufen wird.
Ich hab da jetzt mal eine kleine Funktion mit rein genommen die in eine Textdatei schreiben soll , nur damit ich weiß wo der Fehler entsteht.
Er geht erst gar nicht in die Class/function rein
Liegts vielleicht an der Autoload ?
Meine sehen so aus ist das korrekt ?
autoload.phpCode:;; ; List modules which are required to be loaded beforehand ;; requires[] = "core" ;; ; Configure what you want the autoload creator to register ;; register_namespaces = true register_classes = true register_templates = true ;; ; Override the default configuration for certain sub directories ;; [vendor/*] register_namespaces = false register_classes = false register_templates = false
Im Systemlog steht immer nurCode:ClassLoader::addClasses(array ( 'ldap' => 'system/modules/ldap/ldap.php', ));
Code:[28.07.2015 15:02] Could not find user "testldap"
Geändert von Membaris (28.07.2015 um 14:03 Uhr)
Danke es läuft .... ich hatte noch einen Knoten im Hirn ... hab die ganze Zeit darauf gewartet das ein Backend User angelegt wird. Hatte nicht die distanzierung Mitglied / Benutzer im Kopf.
Das einzige was ich geändert habe ist das Protokoll von LDAP
in der Datei ldap.php
suchen
darunter einfügenCode:$ds = ldap_connect($ldaphost, $ldapport) or die("Could not connect to $ldaphost");
davor hat es nicht zuverlässig mit meinen Windows Server funktioniert.Code:// Protokoll und Options setzen ldap_set_option($ds, LDAP_OPT_REFERRALS, 0); ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
Ok was mir aufgefallen ist :
- Seitencache muss ausgeschaltet sein
- Der Vorname wird nicht importiert
Habe eine frische 3.5.2 aufgesetzt und das tool verwendet.
Bis auf die E-Mail an den Admin hat alles funktioniert!
Geändert von Acta (28.07.2015 um 15:36 Uhr)
Okay selbst .... E-Mail funktioniert...
hatte den SMTP server vergessen :-)
Noch mal korrigiert (Fehler backend -> Backend)
Geändert von Acta (28.07.2015 um 16:02 Uhr)
Fehler sind behoben ... 1000 DANK an Dir
vielleicht solltest du das gleich als Erweiterung einstellen , gibts ja noch nix für 3.5 jetzt schon
Kleine Anregung noch ich hab beim Import noch das dateAdded hinzugefügt :
Code:$objNewUser=$this->Database->prepare("INSERT INTO tl_member SET tstamp=?, firstname=?, lastname=?, login=?, username=?, password=?, email=?, language=?, dateAdded=?") ->execute(time(), utf8_encode($strFName), utf8_encode($strName), 1, $strUsername, time(), $strMail, "de", time());
Geändert von Membaris (28.07.2015 um 15:54 Uhr)
Habs ergänzt und auch deinen Hinweis zu den LDAP-Einstellungen
Einstellen kann ich nix... kein plan wie das geht :-)
Hier meine Änderungen das givenName ist auskommentiert.
ldap.zip
Hallo!
Tut's das Modul nur für Mitglieder?
Ich bräucht was für Benutzer für die 3.5.3
Ich hab's hiermit https://contao.org/en/extension-list...020209.en.html probiert, aber das will nicht, oder ich habs falsch eingerichtet.
Ich habe hier nur kein AD sondern ein OpenLDAP.
Neelix
Geändert von neelix (28.09.2015 um 11:50 Uhr)
Es gleicht auch die Benutzer daten ab, aber es erstellt keine Benutzer.
D.h. wenn du die Nutzer händisch anlegst, kannst du die Zugangsdaten analog zum LDAP verwenden.
Hm, ich habe hier 90 potenzielle Benutzer, die immer wieder wechseln (alte raus, neue rein). Die will ich nicht per Hand anlegen.
Wäre es aufwendig/ schwer das Modul um diese Funktion zu erweitern?
Neelix
Also ich denke es reicht, wenn du
inPHP-Code:
$objNewUser=$this->Database->prepare("INSERT INTO tl_member SET tstamp=?, firstname=?, lastname=?, login=?, username=?, password=?, email=?, language=?, dateAdded=?")
->execute(time(), utf8_encode($strFName), utf8_encode($strName), 1, $strUsername, time(), $strMail, "de", time());
tl_user änderst und schaust ob alle Felder dort auch vorhanden sind?
Geändert von Acta (01.10.2015 um 14:01 Uhr)
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Lesezeichen