Plugin: OpenID v01.00.00, OpenID ermöglicht einen Frontend-Login über ein dezentrales System z |
Willkommen, Gast ( Anmelden | Registrierung ) [ Hilfe | Mitglieder | Suche ]
Plugin: OpenID v01.00.00, OpenID ermöglicht einen Frontend-Login über ein dezentrales System z |
Sat. 16. December 2006, 04:44
Beitrag
#1
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 541 Mitglied seit: 27.06.2006 Mitglieds-Nr.: 8 |
Pluginname:
--------------------------------------------------------------------------- OpenID(-Login) Status: --------------------------------------------------------------------------- beta - das Plugin ist weitgehend fertig und getestet. Bis zu einer stabilen Version wird es nur noch kleinere Änderungen / Bugfixes geben. Das Plugin ist unter Vorbehalt produktiv einsetzbar. Beschreibung: --------------------------------------------------------------------------- OpenID(-Login) ermöglicht einen Frontend-Login über ein dezentrales System zur Identifizierung. Das zugrundeliegende Protokoll wurde von Brad Fitzpatrick, dem Gründer von LiveJournal, entwickelt. Die Idee ist, dass Benutzer, welche ein Benutzerkonto bei einem OpenID-Server haben, sich mit diesem auf beliebigen OpenID-unterstützten Webseiten anmelden zu können, anstatt für jede Webseite ein eigenes Benutzerkonto und Passwort zu benötigen. Dabei wird das Konzept der URL-basierten Identität umgesetzt. OpenID ist ein Single-Sign-On-System, vergleichbar mit dem Liberty Alliance Project, gewährleistet durch die Dezentralisierung – jeder kann einen OpenID-Server betreiben – jedoch nicht die Vertrauenswürdigkeit der Benutzer. Mittlerweile wird OpenID neben Brad Fitzpatrick von SixApart Ltd. auch von dem zu VeriSign gewechselten David Recordon weiterentwickelt und wird meist zusammen mit Yadis oder XRIs verwendet. Vergleichbare Systeme, die bei höherer Komplexität mehr Funktionen bieten sind Shibboleth und Liberty, die beide auf der Security Assertion Markup Language (SAML) aufbauen. Vergleichbare 'Closed-Source' Systeme: Microsofts 'Passport/Life-Account' oder T-Online's 'Netzausweis'. Dokumente - http://openid.net/specs.bml - http://de.wikipedia.org/wiki/OpenID - http://en.wikipedia.org/wiki/OpenID Quellen & Infos - http://www.openidenabled.com Services - https://www.myopenid.com Features: --------------------------------------------------------------------------- OpenID(-Login) besteht aus zwei teilen, einem Plugin (OpenID) und einem Modul (OpenID-Login). Das Plugin stellt die API und Backendbearbeitung, das Modul implementiert den Frontend-Login. Dabei werden einige Features von SF und der neuen API-Struktur genutzt. Das ganze ist eine art Machbarkeitsstudie. - Multiclient - inclusive Modul Author: --------------------------------------------------------------------------- - STam Lizenz: --------------------------------------------------------------------------- GPL Lizenz (Version 2) und kann im Rahmen dieser Bestimmungen frei heruntergeladen, genutzt, modifiziert, sowie verteilt werden. Benötigte Sefrengo Version: --------------------------------------------------------------------------- Sefrengo 1.4 beta2 (V. 01.03.01) Installation: --------------------------------------------------------------------------- Wechseln Sie in Ihrer Sefrengo Version in den Bereich "Administration -> Plugins". Klicken Sie oben rechts auf "Plugin importieren". Am unteren Ende des Bereichs befindet sich ein Uploadfeld. Wählen Sie hier die gewünschte "*.cmsplug"- Datei aus. Mit einem Klick auf das Diskettensymbol wird das Plugin in das CMS importiert. Das Plugin ist nun innerhalb des CMS nutzbar. Installieren Sie das Plugin mit einem klick auf das Plugin-Importieren-Symbol in der Pluginzeile. Das Modul ist nach der Installation sofort innerhalb des CMS nutzbar. Zum Stylen wird ein CSS-Style 'input.openid_login' mitgebracht, einfach in das vorhanden Stylesheet einbinden. Hinweise: --------------------------------------------------------------------------- Zum nutzen den OpenID-Logins braucht man eine OpenID-URL, diese kann Beispielsweise bei https://www.myopenid.com angemeldet werden, und muss dann im Backend unter 'Administration -> OpenID' einem Profil zugewiesen werden. Bekannte Bugs/ noch nicht fertige Bereiche: --------------------------------------------------------------------------- - die Implementation der API kann nach Bugfixes in der SF-API leichter erfolgen. - die Sprachstrings in 'plugins/OpenID/tpl/standard/lang/de/lang_general.php' sind noch nicht Übersetzt. - Fehler im Backend, beim wechsel zum Bereich 'Administration - OpenID-Benutzer bearbeiten' verschwindet das Backend-Menü - Es gibt nur eine Sprache: 'de/DE' - Möglichkeit der Einweg-Registrierung ist deaktiviert - Läuft nicht mit PHP5! Dokumentation: --------------------------------------------------------------------------- Keine vorhanden QUELLTEXT Changelog legend: # -> Bug Fix + -> Addition ^ -> Change - -> Removed ! -> Note Current versionnumber is 01.00.00 - released 16.12.2006 ------------------------------------------------------------------------------------------------! Erste veröffentlichung Download: --------------------------------------------------------------------------- OpenID_v01_00_00.zip ( 106.2KB ) Anzahl der Downloads: 51 Der Beitrag wurde von STam bearbeitet: Fri. 13. April 2007, 11:53 |
|
|
Sat. 16. December 2006, 17:46
Beitrag
#2
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 1.126 Mitglied seit: 27.06.2006 Mitglieds-Nr.: 7 |
hört sich interessant an. Ich habe aber eine Weile gebraucht, bis ich das dahinterstehende Prinzip verstanden habe
-------------------- ------
Ich gehe spazieren durch Gelsenkirchen |
|
|
Sat. 16. December 2006, 18:55
Beitrag
#3
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 541 Mitglied seit: 27.06.2006 Mitglieds-Nr.: 8 |
ZITAT Ich habe aber eine Weile gebraucht, bis ich das dahinterstehende Prinzip verstanden habe ...Ok, ich dachte schon das das gar keinen Interessiert Nun vielleicht könnte man das auch so Beschreiben: Ein OpenSource - Gegenstück zu Microsofts 'Passport/Life-Account' oder T-Online's 'Netzausweis'. Die Plattform ist frei, die Wahl der Server, dem der User vertraut auch. Und man hat volle Kontrolle über seine Daten, respektive über die Daten die man einem Service-Anbieter (wie diesem Plugin) weitergibt. |
|
|
Sat. 16. December 2006, 20:11
Beitrag
#4
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 442 Mitglied seit: 02.07.2006 Wohnort: Halle Mitglieds-Nr.: 71 |
Ich hatte erst einmal darüber gelesen (ich glaube in der c't) und schwupps gibt es das als Modul für SF It's magic...
-------------------- |
|
|
Mon. 18. December 2006, 09:48
Beitrag
#5
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 541 Mitglied seit: 27.06.2006 Mitglieds-Nr.: 8 |
Hmm,
11 Downloads und keine weiteren Reaktionen? Nun gut warten wir mal 1'ne Woche ab und bei zu wenig Interesse stelle ich die Entwicklung wieder ein. Kann ja als 'technical demo' bleiben Gruß |
|
|
Mon. 18. December 2006, 09:59
Beitrag
#6
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 1.126 Mitglied seit: 27.06.2006 Mitglieds-Nr.: 7 |
11 Downloads und keine weiteren Reaktionen? Nun gut warten wir mal 1'ne Woche ab und bei zu wenig Interesse stelle ich die Entwicklung wieder ein. wäre sicherlich schade. Ich denke, das es vielen wie mir geht, noch nie etwas davon gehört. Außerdem ist der Wert des Plugins weit über dem, was andere Module und Plugins beschreiben. Mir fällt gerade der Begriff Trans-CMS ein!! Gibt es wahrscheinlich gar nicht. Das erklärt vielleicht auch die geringe Downloadrate. Und, du hast eine ungünstige Zeit erwischt - vor Weihnachten - vg. auch lit. Post vom Samstag. Ich bleibe auf jeden Fall dran. -------------------- ------
Ich gehe spazieren durch Gelsenkirchen |
|
|
Mon. 18. December 2006, 11:22
Beitrag
#7
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 442 Mitglied seit: 02.07.2006 Wohnort: Halle Mitglieds-Nr.: 71 |
Also ich brauche definitiv Zeit, um mich erst einmal mit den Möglichkeiten vertraut zu machen. Du "schmeißt" uns hier ein Plugin "um die Ohren" , das für mich vom Verständnis etwa der gleiche Quantensprung ist, wie Mail und GnuPGP. Also bitte Geduld, du bekommst schon (im neuen Jahr) ein Feedback von mir. Bitte nicht einstellen. OpenID ist bisher in der Webwelt noch nicht so gebräuchlich, aber das kommt sicher in den nächsten 1,5 Jahren.
-------------------- |
|
|
Mon. 18. December 2006, 11:53
Beitrag
#8
|
|
Advanced Member Gruppe: Moderators Beiträge: 911 Mitglied seit: 26.06.2006 Wohnort: Essen; Ruhrgebiet Mitglieds-Nr.: 4 |
Sehr interessanter Ansatz. Mir fehlt gerad nur die Zeit das anzutesten. Wenn ich das vor einem Monat gesehen hätte, wäre es vermutlich in einem aktuellen Projekt angetestet worden, aber da ist der Zug leider abgefahren.
Mir gefällt die Idee aber riesig. Vielleicht kann ich zwischen den Jahren mal damit spielen. -------------------- |
|
|
Mon. 18. December 2006, 21:29
Beitrag
#9
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 334 Mitglied seit: 10.07.2006 Wohnort: luzern (Schweiz) Mitglieds-Nr.: 128 |
Ich finder der Ansatz auch sehr interessant. Den ich kann mir meine User/Passwörter einfach nicht mehr merken. Werde es über die Festtage einmal testen. Danke schon im Voraus!
Gruss chris |
|
|
Tue. 19. December 2006, 21:40
Beitrag
#10
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 680 Mitglied seit: 09.08.2006 Wohnort: nähe Mainz Mitglieds-Nr.: 182 |
(auch wenns net so dolle hier reinpasst): http://www.bugmenot.com/ - echt seeehr hilfreich
Gruß, Peter |
|
|
Sat. 23. December 2006, 15:39
Beitrag
#11
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 853 Mitglied seit: 16.06.2006 Wohnort: Wien / Österreich Mitglieds-Nr.: 2 |
für den ersten einstieg: http://simonwillison.net/2006/openid-screencast/
-------------------- SEFRENGO | a free choice ... again!
|
|
|
Sun. 24. December 2006, 21:32
Beitrag
#12
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 541 Mitglied seit: 27.06.2006 Mitglieds-Nr.: 8 |
@MaZderMind
@alexander ... guter Beitrag! Ansonsten frohe Weihnachten |
|
|
Thu. 4. January 2007, 04:06
Beitrag
#13
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 680 Mitglied seit: 09.08.2006 Wohnort: nähe Mainz Mitglieds-Nr.: 182 |
Hi
Hmmm also wenn ich den Menüpunkt "OpenID" aufrufe bekomme ich nur ne Fehlermeldung: ZITAT Fatal error: Call to a member function Execute() on a non-object in D:\work\www\sefrengo\backend\plugins\OpenID\API\ADMINISTRATION\OPENID\class.SF_ADMINISTRATION_OPENID_UserCollection.php on line 100 Das Problem ist, dass versucht wird die Klasse /backend/plugins/OpenID/API/DATABASE/class.SF_DATABASE_Ado.php einzubinden, die ja nicht existiert, weil mit QUELLTEXT $my_factory = $sf_factory; $my_factory->api_path = $cfg_openid['api_path']; der globale Pfad der API-Klassenfabrik geändert wird. Wenn ich das richtig sehe dann soll $mod['factory'] = $GLOBALS['sf_factory']; eine Kopie der Factory erzeugen. Ich habe mal versucht das mit dem clone-Schlüsselwort zu erzwingen oder einfach ein neues Factory-Objekt zu erzeugen aber das auch nur Fehler... Gruß, Peter PS. Sry für meinen unproduktiven Beitrag oben O:-) Ich hatte den Sinn von OpenID ein wenig verkannt aber jetz bin ich sehr begeistert von der Idee und hoffe nur dass bald größere Projekte wie z.B. die Wikipedia einen OpenID-Login anbieten. |
|
|
Fri. 5. January 2007, 00:33
Beitrag
#14
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 541 Mitglied seit: 27.06.2006 Mitglieds-Nr.: 8 |
Ich habe mal versucht das mit dem clone-Schlüsselwort zu erzwingen ...Hi, das riecht schon nach PHP5, hmmm... sry, war mir nicht bekannt das SF überhaupt unter 5 läuft und somit auch nicht getestet! Unter PHP4 wird die Klasse SF_ADMINISTRATION_OPENID_UserCollection ganz normal aufgerufen. Die Klasse SF_DATABASE_Ado wird in der Zeile 8 '$this->db =& sf_factoryGetObjectCache('DATABASE', 'Ado');' instanziert. Der Pfad wird ja erst danach verbogen. Unter PHP5 eben nicht, versuch doch mal in der Datei 'backend/plugins/OpenID/API/ADMINISTRATION/OPENID/class.SF_ADMINISTRATION_OPENID_User.php' und 'backend/plugins/OpenID/API/ADMINISTRATION/OPENID/class.SF_ADMINISTRATION_OPENID_UserCollection.php' vor Zeile 2 folgenden Code einzufügen: QUELLTEXT $GLOBALS['sf_factory']->requireClass('DATABASE', 'Ado'); ... das sollte gehen Gruß Der Beitrag wurde von STam bearbeitet: Fri. 5. January 2007, 01:09 |
|
|
Fri. 5. January 2007, 02:05
Beitrag
#15
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 680 Mitglied seit: 09.08.2006 Wohnort: nähe Mainz Mitglieds-Nr.: 182 |
*snüffsnüff* gute nase
Und leider funkt es nicht Das Problem ist, das RequireClass auf jeden Fall auf die Existenz der Datei prüft (auch wenn die Datei bereits geladen wurde) und im Fehlerfall das erzeugen der Instanz verhindert. Ich habe aus dem false ein true gemacht und musste dann noch folgende Klassen "vorladen" (ich habs in der OpenID_inc.php gemacht ): SF_DATABASE_Ado, SF_PAGE_Pageinfos, SF_PAGE_Catinfos, SF_UTILS_DbCache, SF_UTILS_ArrayIterator, SF_ASSETS_DbFile, SF_GUI_Pager. Ich schätze dass du das "verbiegen" des API-Pfades mit die Implementation der API kann nach Bugfixes in der SF-API leichter erfolgen. meinst.. Obwohls bei mir nich auf anhieb funktioniert hat: Großartiges Plugin. Ich sag das aus zwei Sichtweisen - einmal dass OpenID großartig is und die Implementation in Sefrengo ein riesiger Schritt ist, zum anderen weil das Plugin in der Implementation vorbildlich ist. Ein eigener API-Zweig *staun* Allerdings funkt das dann bis zum einbinden des Moduls, dann gibts wieder einen Fehler Ich bastel nochn bisschen aber, aber insgeheim hoffe ich auf eine baldige erweiterung des APIs auf mehrere Quell-API-Pfade Gruß, Peter [edit] Fehlte noch die Klasse SF_ADMINISTRATION_User in der Liste, jetz gehts. |
|
|
Fri. 5. January 2007, 02:27
Beitrag
#16
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 680 Mitglied seit: 09.08.2006 Wohnort: nähe Mainz Mitglieds-Nr.: 182 |
Hi
Soo jetz funktionierts also. Ich habe aber noch zwei Fragen: 1. Ich teste das Plugin in meiner DF-Sandbox von einem Loklen Server (s. Sig.) aus, welcher über eine Url wie http://sefrengo.<meinname>.homeip.net/ erreichen ist. Als Trust-Root wird aber http://sefrengo.<meinname>.homeip.net\ übergeben. Beim erlauben der URL gibt das dann einen Fehler. Ich vermute, dass es daran liegt dass ich ein Win-System habe und da ja ein anderer path_separator gesetzt ist (für lokale Systempfade). Wie der dann in die URL reingerutscht ist... 2. Wird es ein OpenID SignOn-Modul geben, mit dem ich mich quasi auf einer Seite die mich nicht kennt per OpenID anmelden kann und dann dort (evtl. nach aktivierung durch einen Admin) einen Account bekomme? Gruß, Peter |
|
|
Fri. 5. January 2007, 03:42
Beitrag
#17
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 680 Mitglied seit: 09.08.2006 Wohnort: nähe Mainz Mitglieds-Nr.: 182 |
Noch ein Hinweis am Rande (ich hab grad die openid-Events in SFLog eingebaut): openid_login_error übergibt immer eine leere 'openid_url', auch wenn ich mich mit einer nicht vorhandenen OpenID anmelde (und das Event geworfen wird).
Gruß, Peter |
|
|
Fri. 5. January 2007, 07:02
Beitrag
#18
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 541 Mitglied seit: 27.06.2006 Mitglieds-Nr.: 8 |
@MaZderMind,
auf so eine Diskussion freue ich mich schon seit wochen Ja, du hast Recht mit der API, folgende kleine Patches habe ich bei Björn angemeldet: Datei 'API/API/class.SF_API_ObjectStore.php' Zeile 49 muss lauten QUELLTEXT var $store = array(); ... und Datei 'API/API/class.SF_API_ObjectFactory.php' reicht ab Zeile 91 QUELLTEXT if (@require_once($file)) { return true; } Am besten wäre wenn man den Pfad dort gleich rausläßt und PHP über die 'include_path' Pfade suchen läßt, dann könnte ein Plugin einfach per ini_set seinen CLASSPATH hinzufügen. Schick wäre es aber auch wenn ein Plugin über eine API-Methode seinen Pfad hinzufügen könnte. Das hätte auch den Vorteil das andere Module/Plugins die API aus solchen Plugin-API nutzen könnten (und Welten an Möglichkeiten zur Erweiterung öffnen sich ) So wie es jetzt gelöst ist, ist es ein Krampf und bestimmt nicht gewollt. ZITAT weil das Plugin in der Implementation vorbildlich ist. Ein eigener API-Zweig *staun* ... ich finde sogar ganz gut und auch sinnvoll, letzlich sollte man übertrieben gesagt SF komplett überladen können bzw. bei erweitern von SF das gleiche Verzeichnis-Design wie im Backend übernehmen (so wie das Plugin das auch mit den /inc und /tpl Pfaden tut), die Spracheinbindung folgt auch dem SF Design.ZITAT Ich vermute, dass es daran liegt dass ich ein Win-System habe und da ja ein anderer path_separator gesetzt ist (für lokale Systempfade). Wie der dann in die URL reingerutscht ist... ... schau ich mir an, auf die schnelle sehe ich das nicht (habe auch auf Win getestet!).ZITAT Wird es ein OpenID SignOn-Modul geben, mit dem ich mich quasi auf einer Seite die mich nicht kennt per OpenID anmelden kann und dann dort (evtl. nach aktivierung durch einen Admin) einen Account bekomme? ... Ja! Im Modul könnte das jetzt schon dort stehen:QUELLTEXT // openid ... dann muss in der switch ($mod['action']){} nur noch das Flag 'openid_create_account' abgefangen werden if ( $mod['action'] == 'openid_login' ) { if ( !$mod['user']->openidExists(OpenID_Standarize($mod['openid_url'])) && (!$cfg_client['openid']['allow_create_account'] || !$cfg_cms['openid']['allow_create_account']) ) { $mod['error_message'] = 'openid_authentication_unknown'; $redirect_url = sprintf($cfg_client['htmlpath'].$cfg_client['contentfile']."?&action=openid_error&error_message=%s&lang=%s&idcatside=%s", $mod['error_message'], $GLOBALS['lang'], $GLOBALS['idcatside']); $auth->logout(); header("Location: ".$redirect_url); } else { $mod['action'] = 'openid_create_account'; $mod['openid'] =& $mod['factory']->getObject('HTTP/OPENID', 'Request', null, array('store_path' => $mod['cfg_openid']['store_path'])); } } Gruß Der Beitrag wurde von STam bearbeitet: Fri. 5. January 2007, 09:20 |
|
|
Fri. 5. January 2007, 12:37
Beitrag
#19
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 680 Mitglied seit: 09.08.2006 Wohnort: nähe Mainz Mitglieds-Nr.: 182 |
Hi
Ich sehe wie schön es ist mit einem eignene API-Zweig zu arbeiten, allerdings wäre es schön wenn man nicht ständig den API-Pfad verbiegen müsste sondern einfach zwei Pfade definieren könnte (z.B. mit dem Classpath-Ansatz). Zur "Spracheinbindung im SF Design" - ich finde die Spracheinbindung in SF nur teilweise gelungen. Warum sind z.B. die Sprchen unterhalb des Templates eingeordnet? Was macht denn das für einen Sinn? Ein Template soll doch die Oberfläche gestalten und hat an sich nix mit Sprachen zu tun. Gruß, Peter |
|
|
Fri. 5. January 2007, 13:35
Beitrag
#20
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 541 Mitglied seit: 27.06.2006 Mitglieds-Nr.: 8 |
ZITAT Zur "Spracheinbindung im SF Design" - ich finde die Spracheinbindung in SF nur teilweise gelungen. Warum sind z.B. die Sprchen unterhalb des Templates eingeordnet? Was macht denn das für einen Sinn? Ein Template soll doch die Oberfläche gestalten und hat an sich nix mit Sprachen zu tun. ... wo du Recht hast hast du Recht.
|
|
|
Vereinfachte Darstellung | Aktuelles Datum: 20.9.24 - 12:19 |