Nutzer
olav — Fri, 10/31/2008 - 14:24
Im einfachsten Fall gibt es auf Ihrer bestehenden Site noch keine Möglichkeit für Frontend-Nutzer, sich anzumelden. In diesem Fall bietet es sich an, sich der Nutzerverwaltung von Drupal für die neue Interaktivität zu bedienen. Sollen in diesem Szenario auch im Wirtsystem nutzerabhängige Variationen der Inhalte angeboten werden, kann das globale $user-Objekt von Drupal durch Initialisierung des Drupal-Kerns auch dort verfügbar gemacht werden.
Kniffliger wird es, wenn Ihr bestehendes System bereits über eine Anmeldung für Frontend-Nutzer verfügt. Der einfachste und sauberste Weg in diesem Fall wird sein, die vorhandenen Nutzer in die Nutzerverwaltung von Drupal zu migrieren und mit der Drupal-Authentisierung weiterzuarbeiten. Diese Lösung sollten Sie immer anstreben, da eine Integration verschiedener, nicht kompatibler Session-Verwaltungen schnell zu einem Albtraum aus verlorenen Anmeldungen oder – schlimmer – unberechtigten Zugriffen auf sensible Nutzerdaten werden kann.
Sollte das nicht praktikabel sein, weil sich bestehende Anwendungen nicht auf die Authentisierung per Drupal umstellen lassen, müssen Sie zweigleisig fahren. Das User-Modul in Drupal ermöglicht eine Anmeldung von Nutzern mit dem Nutzernamen user@server, wobei server eine Kennung Ihres bestehenden Anmeldedienstes ist. Auf diesem Weg können Sie eine Anmeldung auf Drupal-Seite erhalten, ohne dass sich bestehende Nutzer dort neu registrieren müssen. Die Registrierung neuer Nutzer würde in diesem Fall weiterhin im bestehenden System erfolgen.
Ohne weiteres Zutun Ihrerseits müssten Nutzer sich aber zur Nutzung der Dienste im alten und im neuen System jeweils einloggen, da die Sessions der Systeme ja getrennt verwaltet werden. Für ein Single-Sign-in fehlt eine Integration der Login-Prozesse. Je nach Möglichkeiten Ihres bestehenden Systems ist eine solche Integration in beiden Richtungen denkbar:
- Sie benutzen das Drupal-Login-Formular. Nach dem Login in Drupal rufen Sie – entweder per Redirect, server-seitigem oder API-Aufruf oder per AJAX – die Anmeldung des bestehenden Systems auf, setzen dessen Cookies und Session-Variable.
- Sie benutzen das Login-Formular des Fremdsystems. Nach erfolgtem Login rufen Sie die Funktion user_authenticate() auf, um den Nutzer auch gegenüber Drupal zu authentisieren. Ein anschließender Aufruf von sess_regenerate() aktiviert eine entsprechende Drupal-Session.
Wegen der Unterschiede bei den möglichen Wirtsystemen können wir Ihnen leider zu diesen Szenarien keine fertigen Lösungen anbieten.
Für die Integration von Inhalten und Darstellung lassen sich aber sehr wohl einige typische Szenarien an praktischen Code-Beispielen demonstrieren.




Kommentiert
11 weeks 5 days ago
13 weeks 2 days ago
13 weeks 3 days ago
17 weeks 16 hours ago
49 weeks 4 days ago
1 year 20 weeks ago
1 year 28 weeks ago
1 year 39 weeks ago
1 year 46 weeks ago
2 years 5 days ago