Ein paar Fragen rund um »Pluggable Authentication«

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
Drizzt
Beiträge: 17
Registriert: Do 3. Jul 2008, 19:39
Kontaktdaten:

Ein paar Fragen rund um »Pluggable Authentication«

Beitrag von Drizzt » Do 3. Jul 2008, 19:56

Hallo,
ich möchte in naher Zukunft Contenido für eine Webseite einsetzen, die ein paar besondere Anforderungen hat. Deshalb werde ich ein Pluggable-Authentication-Modul schreiben, welches einen Login mit einer OpenID erlaubt, wenn diese ID an anderer Stelle bereits in einer bestimmten Gruppe Mitglied ist. Der Teil der Aufgabe ist soweit klar und stellt aus meiner Sicht bislang kein Problem dar, aber in der Datei docs/techref/backend/backend.plugauth.html ist im letzten Abschnitt die Rede davon, dass die Benutzer synchronisiert werden müssen und man dazu bitte das »Sync«-Skript aufrufe. Ein kurzes find/grep im Stammverzeichnis von Contenido hat mir leider besagtes Skript nicht zu Tage gefördert. Jetzt ist meine erste Frage: welches Skript ist da gemeint? Bzw. wo finde ich das Beispiel-Skript (bin weder hier im Forum noch beim großen G fündig geworden)?

Die zweite Frage bezieht sich auf das Eintragen des Auth-Handlers für die einzelnen Benutzer: Meine Traumlösung wäre, dass beim (ersten) Loginversuch alle Daten in die Contenido-Datenbank kopiert werden, wenn der Benutzer eine OpenID vorweisen kann, die alle Anforderungen erfüllt (Mitglied in der externen Gruppe, gültige OpenID und »korrektes« Passwort) und bei späteren Logins die Daten ggf. aktualisiert werden. Damit stehe ich aber vor dem Problem, dass mein Auth-Handler bereits gebraucht würde, bevor er als zuständig in der DB eingetragen ist (Passwort-Feld). Gibt es hier eine Möglichkeit das Problem zu umschiffen, ohne große Teile von Contenido bearbeiten zu müssen? Evtl. in Form eines Hooks (heißen hier glaube ich Chains)?

Danke im Voraus,
Drizzt

emergence
Beiträge: 10641
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Di 8. Jul 2008, 17:17

dieses script zum syncen existiert nicht... zumindestens wurde es nie mit ausgeliefert...

zur zweiten frage...
das könnte vielleicht klappen ohne den contenido code massiv zu ändern...

schau dir mal die conlib/local.php an...
besonders das ende der datei... und wie die variable dann genutzt wird...

die funktion die dann aufgerufen werden würde, könnte mit der entsprechenden logik das machen was du haben willst..
etwas hardcore aber machbar...
*** make your own tools (wishlist :: thx)

Drizzt
Beiträge: 17
Registriert: Do 3. Jul 2008, 19:39
Kontaktdaten:

Danke!

Beitrag von Drizzt » Mi 9. Jul 2008, 18:54

emergence hat geschrieben:dieses script zum syncen existiert nicht... zumindestens wurde es nie mit ausgeliefert...
Ok, danke. Hatte mir das in der Zwischenzeit so gedacht, nachdem ich die Dokumentation nochmal gelesen habe. Denn der LDAP-Handler scheint ja nur kostenpflichtig verfügbar zu sein. Gut, dann werde ich mir das DB-Schema mal genauer ansehen und versuchen, dass selbst auf die Beine zu stellen.
emergence hat geschrieben:zur zweiten frage...
das könnte vielleicht klappen ohne den contenido code massiv zu ändern...

schau dir mal die conlib/local.php an...
besonders das ende der datei... und wie die variable dann genutzt wird...

die funktion die dann aufgerufen werden würde, könnte mit der entsprechenden logik das machen was du haben willst..
etwas hardcore aber machbar...
Super. Danke für den Tipp, werde ich mir in den nächsten Tagen einmal ansehen.

Jetzt noch eine Frage: Da ich denke, dass evtl. mit der Zeit mehr Leute daran Interesse haben könnten, sich mit einem eigene Auth-Handler da einzuklinken, würde ich versuchen eine »universelle« Lösung zu finden. Wenn ich also ggf. einen Patch für einen Hook/eine Chain hätte, gibt es dann für Contenido soetwas wie einen öffentlichen Bug-Tracker oder soll ich das dann unter »Bugs« hier einstellen?

Danke&Grüße,
Drizzt

OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL » Mi 9. Jul 2008, 21:33

Hi Drizzt,

hatte letztens erst das erste mal mit einem LDAP zutun deswegen kann ich dir so jetzt nicht großartig helfen. Hört sich aber sehr gut an.

Jedoch kurz die Info das du nicht direkt in Bugs posten kannst (und das ist gut so), kannst aber in Misch posten und wenn es ein Bug ist wird der Post verschoben in Bugs.

Jedoch wenn du einen Hook-/eine Chain-Vorschlag hast wäre das sicher besser in Feature Requests und für hilfe bei der Entwicklung in Development einzutragen :) bzw. diesen Post weiterführen.

mfg OliverL
Zuletzt geändert von OliverL am Fr 10. Okt 2008, 21:16, insgesamt 1-mal geändert.

Drizzt
Beiträge: 17
Registriert: Do 3. Jul 2008, 19:39
Kontaktdaten:

Beitrag von Drizzt » Do 10. Jul 2008, 07:53

OliverL hat geschrieben:hatte letztens erst das erste mal mit einem LDAP zutun deswegen kann ich dir so jetzt nicht großartig helfen. Hört sich aber sehr gut an.
Nur um möglichen weiteren Missverständnissen vorzubeugen: ich plane derzeit keinen LDAP-Handler zu schreiben, das war nur das Beispiel, welches in der technischen Referenz (naja, verdient nicht wirklich den Namen, aber ist im Ordner »techref« im Extraktionsverzeichnis zu finden) angesprochen wird. Ich möchte einen recht speziellen Auth-Handler schreiben, der auf die Anforderungen meines Projekts ausgelegt ist (s. OP), werde den aber sicher frei verfügbar machen. Evtl. braucht ja noch jemand so etwas.
OliverL hat geschrieben:Jedoch kurz die Info das du nicht direkt in Bugs posten kannst (und das ist gut so), kannst aber in Misch posten und wenn es ein Bug ist wird der Post verschoben in Bugs.
Ah ok. Also kein öffentlicher Bugtracker im eigentlichen Sinne. Schade. (Und falls einer eingerichtet werden soll: bitte kein Bugzilla ;))
OliverL hat geschrieben:Jedoch wenn du einen Hook-/eine Chain-Vorschlag hast währe das sicher besser in Feature Requests und für hilfe bei der Entwicklung in Development einzutragen :) bzw. diesen Post weiterführen.
Kann ich derzeit noch nicht sagen, aber es hört sich für mich danach an, als ob es Sinn machen könnte, eine universelle Schnittstelle für Auth-Handler zu schaffen. Evtl. ist das ja schon vorhanden, aber dann wäre es (zumindest) nicht (öffentlich) dokumentiert. Ist also durchaus möglich, dass es am Ende einen neuen Hook geben wird, der dann auch gerne in den Hauptentwicklungszweig übernommen werden kann. Hier wäre ich natürlich auch für einen Hinweis durch einen »offiziellen« Entwickler dankbar. Sonst muss ich eben mehr Quellcode lesen (aka es dauert länger :)).

Grüße&Danke,
Drizzt

OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL » Do 10. Jul 2008, 08:34

Drizzt hat geschrieben:... ich plane derzeit keinen LDAP-Handler zu schreiben
Wolte auch nur sagen das ich keine Ahnung hab! :)
Drizzt hat geschrieben:
OliverL hat geschrieben:... in Misch posten und ... verschoben in Bugs.
Akein öffentlicher Bugtracker ... Schade.
Es gab mal einen Öffentlichen aber der wurde nur von wenigen benutzt und das hier im Forum hat sich nach und nach bewert (besonders da publiziert wird das "Hast du ein Problem guck im Forum."). Und das erst in Misch-Posten ist für die Überprüfung durch Offizielle und für die Ordnung/Einchecken.
Drizzt hat geschrieben:Kann ich derzeit noch nicht sagen, aber es hört sich für mich danach an, als ob es Sinn machen könnte, eine universelle Schnittstelle für Auth-Handler zu schaffen. Evtl. ist das ja schon vorhanden, aber dann wäre es (zumindest) nicht (öffentlich) dokumentiert.
Alle Chains werden in "contenido/include/config.chains.php" registriert.
Es sind leider noch recht wenige (Sehr gut finde ich die Integration bei "ArticleList").

Vielleicht postest du hier mal den Ablauf (da ich ja keine Ahnung hab) wie der Ablauf später sein soll und wie&wo du eingreifen möchtest. Dann können die Leute die OpenID nicht kennen aber Contenido kennen eventuel Hilfestellungen geben können (OpenID sieht aber sehr Interessant aus)

Mfg Oliver

Drizzt
Beiträge: 17
Registriert: Do 3. Jul 2008, 19:39
Kontaktdaten:

Beitrag von Drizzt » Do 10. Jul 2008, 13:43

OliverL hat geschrieben:Alle Chains werden in "contenido/include/config.chains.php" registriert.
Es sind leider noch recht wenige (Sehr gut finde ich die Integration bei "ArticleList").
Danke. Die Datei hatte ich in der Zwischenzeit auch gefunden. ;)
OliverL hat geschrieben:Vielleicht postest du hier mal den Ablauf (da ich ja keine Ahnung hab) wie der Ablauf später sein soll und wie&wo du eingreifen möchtest. Dann können die Leute die OpenID nicht kennen aber Contenido kennen eventuel Hilfestellungen geben können (OpenID sieht aber sehr Interessant aus)
Die Grundidee ist einfach: es gibt bereits einen Login in dem Projekt für ein Forensystem, dieser ist OpenID-basiert und soll weiterhin genutzt werden. Die Webseite selbst ist derzeit statisch, soll aber auf ein CMS umgestellt werden (ich präferiere hier derzeit Contenido, weil ich von der administrativen Seite damit schon Erfahrungen habe). Im CMS sollen all die Leute Schreibrechte erhalten, die im Forensystem einer bestimmten Gruppe zugeordnet sind. Die Logins sollen erhalten bleiben (kein weiteres Passwort/kein weiterer Benutzername (also praktisch die Grundidee hinter OpenID)). Im Allgemeinen würde es reichen, dass die Leute nach einmaliger lokaler Registrierung auch eine OpenID zur Anmeldung verwenden können, da sich die berechtigten Leute aber bereits registriert haben, möchte ich dies vermeiden und folgendes System implementieren:
  1. Ein Benutzer besucht die Backend-Seite von Contenido.
  2. Der Benutzer gibt wie gehabt seine OpenID und sein Passwort ein.
    1. Wenn der Benutzer berechtigt ist (also seine OpenID verifiziert werden kann und diese der berechtigten Gruppe zugeordnet ist), sich aber zum ersten Mal anmeldet, wird ein neuer Contenido-Account im Hintergrund erstellt und dann mit dem »normalen« Login fortgefahren.
    2. Wenn der Benutzer berechtigt ist und bereits ein Account in der Contenido-DB verfügbar ist, wird dieser ggf. aktualisiert und dann mit dem Login fortgefahren.
Dieser OpenID-basierte Login ist sicher etwas speziell. Denn meist möchte ja der Administrator direkt im Contenido den Benutzer anlegen und ihm dann ggf. den Login via OpenID ermöglichen. Deshalb werde ich das System nach Möglichkeit so schreiben, dass dieser Fall auch ohne weiteres nutzbar ist. Wie genau ich das machen werde, habe ich mir im Detail noch nicht überlegt, auch wenn ich eine grobe Vorstellung von der Richtung habe.

So, wer noch Fragen oder Anregungen hat, ist herzlich eingeladen, hier seinen Senf dazuzugeben. :)

Zum Schluss noch eine kleine Warnung: das wird noch ein kleines Weilchen dauern, bis das hier einsatzbereit ist, da es sich bei der ganzen Sache um ein Privatprojekt handelt. ;)

Grüße,
Drizzt

langwebdesign
Beiträge: 74
Registriert: So 23. Okt 2005, 14:11
Wohnort: Titting
Kontaktdaten:

Re: Ein paar Fragen rund um »Pluggable Authentication«

Beitrag von langwebdesign » Di 3. Nov 2009, 21:27

Hallo Drizzt,

wollte mal fragen wie weit du mit deinem Projekt bist?

mfg stephan
Dev Umgebung: Contenido Git Develop Branch, Win 10, PHP 7.2.13, VS Code, XDebug, PHP integrated Webserver
Aktuelle arbeite ich am LDAP Plugin für Frontend (und irgendwann Backend) User, Feedback erwünscht!

Drizzt
Beiträge: 17
Registriert: Do 3. Jul 2008, 19:39
Kontaktdaten:

Re: Ein paar Fragen rund um »Pluggable Authentication«

Beitrag von Drizzt » Mi 4. Nov 2009, 14:18

Hallo Stephan,
gar nicht weit, weil ich für mein Projekt jetzt doch anders vorgegangen bin. Der Aufwand hat sich derzeit einfach für den Nutzungsgrad nicht gelohnt. Da ich aber grundsätzlich immernoch an dieser Erweiterung interessiert bin, ist es immer noch irgendwo sehr weit unten auf meiner To-Do-Liste.

Für kommerzielle Projekte stehe ich natürlich gerne zur Verfügung und würde das auch schneller implementieren. ;)

Grüße&Sry (nicht mehr helfen zu können atm),
Drizzt

langwebdesign
Beiträge: 74
Registriert: So 23. Okt 2005, 14:11
Wohnort: Titting
Kontaktdaten:

Re: Ein paar Fragen rund um »Pluggable Authentication«

Beitrag von langwebdesign » Mi 4. Nov 2009, 14:58

Hi,

hast du dazu noch irgendwelche Ansätze seitens Contenido die du posten kannst?
Für mich sind die Chains Neuland und ich wäre über jede Hilfe dankbar.

Ich würde das dann natürlich auch der Community zur Verfügung stellen.

mfg Stephan
Dev Umgebung: Contenido Git Develop Branch, Win 10, PHP 7.2.13, VS Code, XDebug, PHP integrated Webserver
Aktuelle arbeite ich am LDAP Plugin für Frontend (und irgendwann Backend) User, Feedback erwünscht!

Drizzt
Beiträge: 17
Registriert: Do 3. Jul 2008, 19:39
Kontaktdaten:

Re: Ein paar Fragen rund um »Pluggable Authentication«

Beitrag von Drizzt » Mo 16. Nov 2009, 22:21

Würde gerne noch was zur Verfügung stellen, aber das wird schwer, weil ich mit einem HD-Crash zu kämpfen hatte vor einiger Zeit und ich dann nicht gleich gecheckt habe, ob auch diese Dateien im Backup gewesen wären. Jetzt sind sie es definitiv nicht mehr (rausrotiert).

EDIT: Wenn du aber loslegen solltest und das in einem VCS verwaltest, bin ich (Zeit vorausgesetzt) gerne bereit zu helfen.

Sry,
Kai

Antworten