Login / User gegen externe Datenbank per RPC prüfen
am 04.10.2007 - 15:45 Uhr in
Hallo allerseits :-)
Ich hoffe, ihr könnt mir ein wenig auf die Sprünge helfen.
Ich benötige eine Userprüfung gegen eine externe Datenbank. Die User sind in einer externen Datenbank gespeichert, an die ich nicht direkt herankomme. Es existiert ausschließlich eine RPC API im XML Format.
Ich habe leider kein Modul gefunden, was mir zumindest annähernd eine Lösung ermöglicht. Ich bin gern bereit, ein eigenes Modul dafür zu schreiben, weiss aber leider nicht, wo ich mich reinhängen muss, um das Login an der richtigen Stelle abzufangen.
So soll es werden:
Der User loggt sich mit seinen bekannten Daten ein, das eigene Modul prüft das alles und loggt den User ein mit den Rechten "authenticated user". Bei falschen Logindaten wird dann eine entsprechende Meldung ausgegeben. Die Loginprüfung gegen die Userdatenbank von Drupal müsste somit umgangen werden.
Habt ihr einen Hinweis, wie ich das am besten realisieren könnte?
Schonmal im Voraus vielen Dank :)
- Anmelden oder Registrieren um Kommentare zu schreiben
Ok, ich bin jetzt soweit,
am 08.10.2007 - 09:13 Uhr
Ok, ich bin jetzt soweit, dass ich ein auth-Hook gebaut habe, was die Prüfung erfolgreich durchführt.
Wie bekomm ich es nun hin, dass Drupal den User als eingeloggt ansieht, aber ihn nicht in der User-Tabelle speichert?
Hallo, also das Drupal den
am 08.10.2007 - 09:46 Uhr
Hallo,
also das Drupal den User nicht in der eigenen Usertabelle anlegt sollte nicht möglich sein. Liegt einfach daran, das drupal die Usertabelle braucht um die Rechte abzugleichen. Habe selbst schon paar versuche gemacht das zu umgehen, war jedoch sehr unzufrieden mit dem Ergebnis bis hin zu nicht möglich.
Als gute Vorlage bzgl. des Programmieren von Tools zur Auth kann ich das Ldap Modul empfehlen. Hat mir sehr weitergeholfen sich den Code dadrin mal inruhe anzuschauen.
Du hast Recht
am 10.10.2007 - 11:25 Uhr
Ich hab das Modul jetzt fertig.
Das LDAP Auth Modul hat mir einen etwas ungewöhnlichen Weg gezeigt, der aber funktioniert. Es verbiegt die Validierung des Users auf eigene Routinen ohne große Verwendung der Hooks.
Das Login ist im Grunde ein Neuregistrieren des Users in der Drupal-Datenbank. Beim Logout des Users wird er wieder gelöscht. Geht eigentlich ziemlich gut und verhindert, dass der User seine Daten in der externen Datenbank ändert, aber Drupal noch alte Daten hat.
Danke für den Tipp :)
Fand den Ansatz vom Ldap
am 11.10.2007 - 09:53 Uhr
Fand den Ansatz vom Ldap Auth Modul ebenfalls etwas ungewöhnlich aber trotzdem sehr gut gelungen. Hab auf ähnliche Weise so 2 Loginmodule für unsere Systeme gebaut, einmal gegen PAM und einmal Systeminterne Loginmethoden. Werd sobald das PAM Modul bei uns aus dem Betastadium raus ist dieses auch mal veröffentlichen. Gibt noch einige Änderungen die nachgepflegt werden müssen.