Hallo,
wir betreiben eine Suite von Diensten für eine bestimmte geschlossene Community und planen, Discourse als soziale Plattform einzubinden. Ich frage mich, was der technisch beste und eleganteste Weg ist, eine Discourse-Instanz nahtlos in unsere Suite zu integrieren.
Als Beispiel: Unsere Suite umfasst den Dienst A und den Dienst B (die wir selbst entwickelt haben) sowie einen OAuth2-SSO-Dienst.
Klickt ein Benutzer auf „Anmelden" in Dienst A oder B, wird er zum SSO-Dienst weitergeleitet, loggt sich dort ein und wird wie üblich zurückgeleitet. Dank Cookies und Sitzungssteuerung muss sich ein Benutzer, der sich bereits bei Dienst A angemeldet hat, nicht erneut bei Dienst B anmelden, wenn er später Dienst B aufruft (er verfügt bereits über eine Sitzung).
Genauso möchten wir es Benutzern ermöglichen, nahtlos von Dienst A oder B zum Discourse-Dienst zu wechseln, nachdem sie sich über den SSO-Dienst angemeldet haben. Wir gehen davon aus, dass der Benutzereintrag in allen Diensten vorhanden ist. Derzeit wurde das OAuth2-Discourse-Plugin evaluiert und funktioniert mit unserem SSO-Dienst, erfordert jedoch, dass Benutzer erneut auf „Mit SSO anmelden" klicken, wenn sie Discourse besuchen. Gibt es eine Möglichkeit, z. B. über einen API-Aufruf, automatisch eine Sitzung bei Discourse zu starten, wenn Benutzer sich über den gemeinsamen SSO von Dienst A oder B anmelden?
Darüber hinaus betrifft die oben genannte Frage auch die Integration von Kommentaren über die eingebettete Komponente. Bei einem „öffentlichen" Discourse-Dienst gibt es keine Probleme mit dem Kommentarteil, und Kommentare werden korrekt eingebettet. Wird jedoch ein privater Discourse-Dienst betrieben, wird das eingebettete Kommentarfenster nicht ordnungsgemäß angezeigt, wenn sich Benutzer nicht zuvor auch bei Discourse angemeldet haben. Das ist ein Problem im Zusammenhang mit einer nahtlosen Integration.
Gibt es eine Möglichkeit, diese Probleme zu umgehen? Ich habe überlegt, ein Middleware-Plugin zu entwickeln, das ein Token oder Cookie decodiert und den entsprechenden Benutzer sofort authentifiziert und anmeldet, bevor der eigentliche Aufruf erfolgt. Gibt es ein bestehendes Plugin dafür?
Vielen Dank für Ihre Unterstützung.