Contao-Camp 2024
Ergebnis 1 bis 24 von 24

Thema: User Login via LDAP in Contao 4.x

  1. #1
    Contao-Nutzer
    Registriert seit
    02.08.2012.
    Ort
    Dresden
    Beiträge
    2

    Standard User Login via LDAP in Contao 4.x

    Hi,

    Gibt es denn in Contao 4 die Möglichkeit, Nutzer über ein LDAP-Verzeichnis am Contao anzumelden? Aktuell habe ich Contao 4.7 installiert.

    Ich habe leider keine Erweiterung für Contao 4 gefunden. Die Themen hier im Forum sind alle Recht alt.

    Stefan Lindecke hat auf der Contao Konferenz 2017 über die Erweiterung authProvider gesprochen. Leider habe ich dazu keine weiteren Informationen gefunden.

    Hat jemand eine Lösung für das Problem?

    Viele Grüße,
    Stephan

  2. #2
    Contao-Fan
    Registriert seit
    28.11.2009.
    Ort
    Remscheid
    Beiträge
    837

    Standard

    Ich hänge mich hier auch mal mit dran.

  3. #3
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.896
    Partner-ID
    10107

  4. #4
    Contao-Fan
    Registriert seit
    28.11.2009.
    Ort
    Remscheid
    Beiträge
    837

    Standard

    In dem Thema geht es um 3.5 und ihr kämpft da ja mit einem Plugin an dem sich seit zwei Jahren nichts mehr getan hat.

  5. #5
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.896
    Partner-ID
    10107

    Standard

    Contao 4 ist prinzipiell mit Contao 3 Extensions kompatibel. Falls die Extension noch in Contao 4 funktioniert, könnt ihr ja entsprechende Pull Requests bereitstellen - oder ggf. mit Anpassungen.

  6. #6
    Contao-Fan
    Registriert seit
    28.11.2009.
    Ort
    Remscheid
    Beiträge
    837

    Standard

    So, das geht schon gut los:

    Code:
    [2019-04-22 18:51:22] request.INFO: Matched route "contao_install". {"route":"contao_install","route_parameters":{"_route":"contao_install","_scope":"backend","_token_check":true,"_controller":"Contao\\InstallationBundle\\Controller\\InstallationController::installAction"},"request_uri":"http://demo.XXXXXX.de/contao/install","method":"HEAD"} []
    [2019-04-22 18:51:22] request.INFO: Matched route "contao_install". {"route":"contao_install","route_parameters":{"_route":"contao_install","_scope":"backend","_token_check":true,"_controller":"Contao\\InstallationBundle\\Controller\\InstallationController::installAction"},"request_uri":"http://demo.XXXXXX.de/contao/install","method":"GET"} []
    [2019-04-22 18:51:23] request.CRITICAL: Uncaught PHP Exception Symfony\Component\Debug\Exception\ClassNotFoundException: "Attempted to load class "Ldap" from namespace "HeimrichHannot\Ldap". Did you forget a "use" statement for another namespace?" at /var/www/web0/html/demo.XXXXXX.de/system/modules/contao-ldap/config/config.php line 6 {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\ClassNotFoundException(code: 0): Attempted to load class \"Ldap\" from namespace \"HeimrichHannot\\Ldap\".\nDid you forget a \"use\" statement for another namespace? at /var/www/web0/html/demo.XXXXXX.de/system/modules/contao-ldap/config/config.php:6)"} []

  7. #7
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.896
    Partner-ID
    10107

    Standard

    Ja stimmt, in diesem Fall ist es etwas komplizierter. Du musst:

    1. Einen eigenen Fork des Repositories erzeugen.
    2. Das Repository deines Forks in der composer.json deiner Contao 4 Installation hinzufügen.
    3. In diesem Fork die composer.json entsprechend ändern, damit die Extension in Contao 4 installiert werden kann.
    4. Die dev-master Version der Extension (bzw. den entsprechenden Branch, wo du die composer.json geändert hast) in der composer.json deiner Contao 4 Installation requiren.
    5. Ein composer update machen.

  8. #8
    Contao-Fan
    Registriert seit
    28.11.2009.
    Ort
    Remscheid
    Beiträge
    837

    Standard

    Hm, also Schritt 1: kein Problem.

    Schritt 2-4: was muss ich da wo eintragen?
    Schritt 5: kein Problem.

    Ich hatte in Erinnerung, dass ich Contao 3.5 Erweiterungen einfach nach system/modules laden kann, und Contao 4 diese von dort direkt lädt. Dann müsste ich dort ja auch die Anpassungen in PHP machen können.

  9. #9
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.896
    Partner-ID
    10107

    Standard

    Ja, nur in diesem Fall muss das Modul über composer installiert werden. Andernfalls fehlen dir bspw. die Abhängigkeiten.
    Geändert von Spooky (19.02.2020 um 09:39 Uhr)

  10. #10
    Contao-Fan Avatar von ph!L
    Registriert seit
    04.11.2009.
    Ort
    Internet
    Beiträge
    399

    Standard

    Ist das Thema LDAP in Contao 4 jemals gelöst worden?

  11. #11
    Contao-Nutzer
    Registriert seit
    08.03.2020.
    Beiträge
    3

    Standard Lösungsansatz

    Ich würde nicht soweit gehen und das Thema als gelöst bezeichnen, aber es gibt Ansätze

    https://github.com/refulgent-de/contao-ldap

    Grüße

    PS: Der Stand ist äußerst krude und Gruppen müssen zur Zeit noch vom Typ "groupOfUniqueNames" sein.

  12. #12
    Contao-Fan Avatar von ph!L
    Registriert seit
    04.11.2009.
    Ort
    Internet
    Beiträge
    399

    Standard

    Zitat Zitat von javanaut Beitrag anzeigen
    Ich würde nicht soweit gehen und das Thema als gelöst bezeichnen, aber es gibt Ansätze

    https://github.com/refulgent-de/contao-ldap

    Grüße

    PS: Der Stand ist äußerst krude und Gruppen müssen zur Zeit noch vom Typ "groupOfUniqueNames" sein.
    Stammt das von dir?

  13. #13
    Contao-Nutzer
    Registriert seit
    08.03.2020.
    Beiträge
    3

    Standard

    Ja und nein. Die Vorlage ist von heimrichhannot aber ich musste einiges vervollständigen bzw umschreiben. Anscheinend wurde das Repo verwaist als der Code gerade neu geschrieben und refactored wurde. Habe dann noch ein Bundle draus gemacht damit es auf 4.x läuft. Ich werde, wenn es meine Zeit erlaubt, noch ein paar Sachen glatt ziehen und versuchen eine Benutzerregistrierung für das Frontend zu bauen. Wenn es Anregungen und Ideen gibt, nehme ich die auch gerne mit

    Grüße

  14. #14
    Contao-Fan Avatar von ph!L
    Registriert seit
    04.11.2009.
    Ort
    Internet
    Beiträge
    399

    Standard

    Meine Frage rührt daher: Wärst du in der Lage in einem bezahlten Projekt eine Weiterentwicklung der Extension zu realisieren?

  15. #15
    Contao-Nutzer
    Registriert seit
    08.03.2020.
    Beiträge
    3

    Standard

    Das hängt von den an das Projekt gestellten Anforderungen ab, denke ich, klingt aber auf jedenfall interessant Ich schicke dir später eine PM, vielleicht wärst du so nett und würdest mir auf demselben Wege ein paar ungefähre Vorabinfos zukommen lassen?

    Grüße

  16. #16
    Contao-Fan Avatar von ph!L
    Registriert seit
    04.11.2009.
    Ort
    Internet
    Beiträge
    399

    Standard

    So konkret ist es leider noch nicht. Aber wenn es das wird (stellt sich in den kommenden Wochen raus), weiß ich, wen ich fragen muss ;-)

  17. #17
    Contao-Fan
    Registriert seit
    28.11.2009.
    Ort
    Remscheid
    Beiträge
    837

    Standard

    Hallo,

    ist aus diesem Projekt etwas geworden? Gibt es nun eine funktionierende Anbindung an ein LDAP/AD?

    Neelix

  18. #18
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.548
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  19. #19
    Contao-Fan Avatar von ph!L
    Registriert seit
    04.11.2009.
    Ort
    Internet
    Beiträge
    399

    Standard

    Dazu hätte ich jetzt auch verlinkt.
    Bei uns ist nichts aus dem Projekt geworden.

  20. #20
    Contao-Nutzer
    Registriert seit
    29.01.2013.
    Beiträge
    157

    Standard

    Hallo in die Runde,

    da vielleicht hin und wieder jemand über diesen Beitrag stolpert

    Wir haben soeben eine komplett überarbeitete Version des LDAP-Moduls fertiggestellt. Sie basiert auf aktuellen Technologien (symfony/ldap, Contao 4.9) und ist daher nicht kompatibel mit der alten Version. Es sollte aber nicht allzuviel Aufwand sein, die Konfiguration von den Contao-Einstellungen in das neue Format auf Basis der Symfony Configuration (config.yml) zu überführen.

    In der README ist genau beschrieben, wie das Modul arbeitet. Bei Fragen, könnt ihr euch aber natürlich gern auch melden

    Da es sich um eine erste BETA-Version handelt (aber auch sonst bei solchen Modulen): bitte legt euch vor der Nutzung ein Backup der entsprechenden Tabellen an (tl_user, tl_member, tl_user_group, tl_member_group)

    https://github.com/heimrichhannot/contao-ldap-bundle

    Ciao The_Unknown (bei GitHub Defcon0)

  21. #21
    Contao-Fan
    Registriert seit
    28.11.2009.
    Ort
    Remscheid
    Beiträge
    837

    Standard

    Das klingt gut. Hast Du ein paar Screenshots von den Einstellungen?

    Kann man Filter setzen, damit nur Benutzer mit bestimmten Eigenschaften/ Mitgliedschaft in Gruppen oder bestimmter OUs übernommen werden?

  22. #22
    Contao-Nutzer
    Registriert seit
    29.01.2013.
    Beiträge
    157

    Standard

    Du kannst entsprechende DNs setzen, damit nur bestimmte Personen/Gruppen importiert werden, genau.

    Bilder von der Config gibt es nicht, da es sich um eine Symfony Config handelt. Du kannst alle Parameter hier sehen:

    https://github.com/heimrichhannot/co...figuration.php

    Alternativ, wenn du es installiert hast, kannst du dir auch alles anschauen mit

    Code:
    vendor/bin/contao-console config:dump-reference huh_ldap

  23. #23
    Contao-Fan
    Registriert seit
    28.11.2009.
    Ort
    Remscheid
    Beiträge
    837

    Standard

    OK, sprich ich lege z.B. eine OU "Contao-Groups" an, darunter dann die div. Gruppen, die ich auch in Contao anlegen und mit Rechten versehen muss.
    Und über 'person: filter' könnte ich z.B. festlegen, dass nur User mit z.B. "ou:PR" als Attribut sich am Backend anmelden können, richtig?

  24. #24
    Contao-Nutzer
    Registriert seit
    29.01.2013.
    Beiträge
    157

    Standard

    Nee, nicht so ganz

    Zunächst muss man 2 mögliche Situationen unterscheiden:

    1. Benutzer/Mitglieder im Contao existierten bereits sowie im LDAP.
    2. Benutzer/Mitglieder im Contao existierten noch nicht, im LDAP aber schon.

    In Fall 2 kannst du entweder mit dem Command alle Benutzer/Mitglieder ins Contao importieren oder on-demand nur beim aktiven Login importieren lassen. Das hängt davon ab, ob du gleich alle LDAP-Gruppen und -Nutzer im Contao haben willst.

    Alle importierten Benutzer/Mitglieder und Gruppen haben das Feld „ldapUidNumber“ bzw. „ldapGidNumber“, damit bei wiederholtem Import keine Duplikate ins System kommen, sondern die bestehenden aktualisiert werden können.

    Im Fall 1 kannst du analog vorgehen. Allerdings versucht das Modul dann, über das Matching von Username im Contao und uid im LDAP herauszufinden, welche Benutzer/Mitglieder schon im System sind. Diese werden dann nicht erneut importiert, sondern ihnen wird direkt die korrekte ldapUidNumber zugewiesen. Bei Gruppen geht das leider nicht so einfach, weil es kein Contao-Feld gibt, was für so eine Matching in Frage kommt. Daher muss man in diesem Fall die „ldapGidNumber“-Werte an den lokalen Feldern vorab manuell setzen. Das ergänze ich noch in der Readme.

    Über den Filter und die DNs bestimmst du, welche Gruppen und Nutzer im LDAP er überhaupt beachtet bzw. importiert.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •