Auf Benutzerdaten nach erfolgreichen Login zugreifen

  • Hallo zusammen,

    ich würde gerne nach einem erfolgreichen Login eines jeden Benutzers im WSC den Benutzer genau mit dem selben Benutzernamen und Passwort auch in einer separaten Software anlegen. Gibt es dafür ein passendes Event in dem ich nach erfolgreichem Login an die Daten des Users komme um diese in einer anderen DB anzulegen?

    Wichtig zu erwähnen wäre eventuell noch, dass wir das LDAP Paket verwenden.

    Grüße

    JAY

    Einmal editiert, zuletzt von itsmeJAY (5. Juni 2023 um 18:51)

    • Offizieller Beitrag

    Hallo,

    es gibt:

    WCF/UserLoggedIn.class.php at master · WoltLab/WCF
    WoltLab Suite Core (previously WoltLab Community Framework) - WCF/UserLoggedIn.class.php at master · WoltLab/WCF
    github.com

    Aber das greift unabhängig von der Login-Methode und stellt dir insbesondere auch kein Kennwort zur Verfügung. Grundsätzlich hat „Kennwort“ an externe Dienste übertragen auch immer so ein Geschmäckle.

  • Hallo Tim,

    danke für die Info. Wenn ich nicht an das Passwort komme, bringt mir das Event leider nichts.

    Ich bin mir nicht sicher ob es mit dem LDAP Paket funktioniert, aber könnte ich nicht theoretisch ein Event der AbstractForm nutzen während des Logins? Möglicherweise das save Event?

    Grundsätzlich hat „Kennwort“ an externe Dienste übertragen auch immer so ein Geschmäckle.

    Ich wollte das Passwort nicht "unverschlüsselt im Klartext" übertragen, sondern vorher hashen (ggf. im Listener) und dann den Hash an die "externe" Software senden um den Benutzer dort entsprechend genau so anzulegen wie im WSC.

    • Offizieller Beitrag

    Hallo,

    Ich bin mir nicht sicher ob es mit dem LDAP Paket funktioniert, aber könnte ich nicht theoretisch ein Event der AbstractForm nutzen während des Logins? Möglicherweise das save Event?

    saved vielleicht, da hast du aber das Problem, dass du nicht weißt, ob eine Mehrfaktor-Authentifizierung noch erforderlich ist. UserLoggedIn greift zuverlässig erst dann, wenn der Benutzer wirklich eingeloggt ist.

    Ich wollte das Passwort nicht "unverschlüsselt im Klartext" übertragen, sondern vorher hashen (ggf. im Listener) und dann den Hash an die "externe" Software senden um den Benutzer dort entsprechend genau so anzulegen wie im WSC.

    Das ist realistisch nicht viel besser als eine Übertragung im Klartext. Am Ende hast du das Kennwort trotzdem an mehr als einer Stelle abgelegt, musst diese synchron halten, die Gefahr einer Kompromittierung erhöht sich, …

    Sinnvollerweise greift die andere Software auch einfach auf das LDAP zu, dafür ist es ja da.

  • Sinnvollerweise greift die andere Software auch einfach auf das LDAP zu, dafür ist es ja da.

    Die andere Software liegt öffentlich im Web und hat auch eine „normale“ Benutzerverwaltung für User, die nicht im AD sind. Der AD Server ist nicht öffentlich und wir beabsichtigen auch nichts in dieser Hinsicht. Das WSC wird auch nur intern verwendet.

    UserLoggedIn greift zuverlässig erst dann, wenn der Benutzer wirklich eingeloggt ist.

    Hm, würde das Event ja nutzen, aber ohne Passwort macht es schlichtweg keinen Sinn. Vielleicht mache ich es aber auch doch ganz anders: Eine extra Form, wo der Benutzer sich das Passwort für die externe Software setzen muss. Ist zwar ein Schritt mehr, aber möglicherweise die einzige Lösung ohne passendes Event.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!