Seite 1 von 1

SSO mit eigenem WebSystem

Verfasst: 10.01.2016 14:37
von Biker68
Hallo,
ich habe ein eigenes CMS-System erstellt und dort eine Benutzerverwaltung.

Nun suche ich ein Forum-System und möchte dieses einbinden, z. B. phpBB.
Gibt es nun eine Möglichkeit, phpBB so einzurichten, damit ich meine eigene Benutzerverwaltung verwenden kann, quasi SingleSiteOn (SSO) ?
In meinem Webauftritt definiere ich z. B. Admin + Benutzer, entsprechend hätte man auch diese Rechte im Forum.

Danke für Infos.

Tschau
Martin

Re: SSO mit eigenem WebSystem

Verfasst: 11.01.2016 09:19
von Pfiffy
SSO heißt SingleSignOn!

Ohne Nennung des CMS wird man dir hier sicher nicht weiterhelfen können.

Grücce
Pfiffy

Re: SSO mit eigenem WebSystem

Verfasst: 11.01.2016 12:30
von gn#36
Offenbar ist mein gestriger Beitrag vor dem Absenden im Nirvana gelandet :/ Naja.

Das einfachste dürfte es sein, das genau andersrum anzugehen: Nimm den phpBB Login für dein eigenes CMS. Das kannst du im Grunde so machen wie bei phpBB 3.0: viewtopic.php?f=140&t=235640

Die Userbasis direkt weiterzunutzen wird aufwändig. Es dürfte nahezu unmöglich sein, z.B. die Usertabelle von phpBB zu ersetzen durch deine eigene Variante davon, dafür gibt es viel zu viele verteilte SQL Abfragen überall im Code die darauf an der Userklasse vorbei direkt zugreifen. Was du aber machen kannst ist dir Skripte zu schreiben, die die Tabelle anhand deiner CMS Daten selber füllen und die einen Login eines Users auf Basis deiner CMS Session durchführen. Für letzteres musst du ein Auth Plugin erstellen. Davon gibt es bereits ein paar vorhandene, die du alle unter phpbb/auth/provider finden kannst. Standard ist die Datei db.php. In phpBB Nutzen kannst du alles, was das interface in der Datei provider_interface.php in dem Ordner bereitstellt. Den User muss es aber trotzdem im phpBB selbst geben, wobei es durchaus möglich wäre, bei einem Loginversuch mit deinem neuen Auth Plugin den User einfach anzulegen, wenn er noch nicht existiert.

Für das anlegen eines Users gibt es auch Funktionen, die genau das erleichtern. Hierfür kannst du mal einen Blick in die includes/functions_user.php werfen (user_add, user_delete).

Dein Plugin kannst du problemlos als Erweiterung realisieren, siehe hierzu viewtopic.php?f=140&t=235138

Deine Auth Provider Klasse muss als solche in der service.yml deiner Erweiterung markiert werden, ähnlich wie das bei Cronjobs und Eventhandlern nötig ist:

Code: Alles auswählen

tags:
             - { name: auth.provider }
Falls du diesen Hinweis nicht verstehst solltest du dich erst mal mit Erweiterungen beschäftigen. Es wird dir in der Hinsicht auch keine Erleichterung bringen, das direkt in phpBB einzubauen, denn hier müsstest du genau das gleiche machen, abgesehen davon dass die Änderungen statt in der service.yml der Erweiterung in einer core Konfigurationsdatei gemacht werden müssten (z.B. config/auth.yml oder sowas). Da kannst du es lieber gleich als Erweiterung bauen.

Re: SSO mit eigenem WebSystem

Verfasst: 11.01.2016 19:59
von Biker68
Pfiffy hat geschrieben:SSO heißt SingleSignOn!
Sorry. Tippfehler. Ist klar.
Pfiffy hat geschrieben:Ohne Nennung des CMS wird man dir hier sicher nicht weiterhelfen können.
Es ist mein eigenes System "Martins Webbaukasten". Ist eine Eigenentwicklung mit PHP. Ich kann da quasi alles mögliche einbauen.

Re: SSO mit eigenem WebSystem

Verfasst: 17.01.2016 19:44
von Biker68
Hallo,
habe es hinbekommen, daß ich einen User in phpBB anlege.
Eigentlich recht simpel, ich habe einen User in der Datenbank angelegt. Das scheint zu klappen.

Was ich allerdings nicht finde, wie logge ich mich nun von einem anderem System aus ein ?

Quasi: www.domain.de/forum/login?USERNAME=x&PASSWORD=y
(oder irgendwie ähnlich; besser, wenn man das PASSWORD nicht sieht).

Tschau
Martin

Re: SSO mit eigenem WebSystem

Verfasst: 17.01.2016 21:23
von gn#36
Dazu musst du wie gesagt ein Authentication plugin nutzen (das dann anhand deiner eigenen Cookies o.ä. einen phpBB User im Forum einloggt), oder aber den phpBB Login in deine Seite einbauen.

Re: SSO mit eigenem WebSystem

Verfasst: 17.01.2016 22:22
von Biker68
Hallo,
habe nun div. Lösungen probiert, z. B. den Link mit viewtopic.php?t=144899
und dann noch folgenden direkten Code:

Code: Alles auswählen

                        include("forum/phpBB3/phpbb/auth/auth.php");
                        $auth->login($username,$password,TRUE,TRUE);
 
Aber es tut sich dann nichts. Erhalte keine Hinweise, nur weiße Fläche.
In den Parametern $username und $password sind die korrekten Werte enthalten.

Hat noch jemand eine Idee ?

Tschau
Martin