Discourse-Forum SSO im Iframe-Problem

Hallo, ich möchte das Forum per Iframe in eine Website einbetten.

Das Forum loggt sich per SSO ein. Das Iframing funktioniert einwandfrei. Der SSO-Prozess kann jedoch das Login-Cookie nicht setzen, da auf Discourse-Seite das Attribut „SameSite=Lax" festgelegt ist. Hat jemand anderes dieses Problem auch? Oder hat jemand es geschafft, sein Forum per Iframe in eine Website einzubetten und über SSO zu verbinden?

Vielen Dank im Voraus.

Ich wollte dich nur informieren, dass Discourse in einem iframe nicht gut (oder gar nicht) funktioniert. Du fragst dich also schon nach Ärger :wink:

Vielen Dank für die sehr, sehr schnelle Antwort :slight_smile:

image

Hmm, okay, ich habe in den Discourse-Einstellungen eine Option gefunden, die es erlaubt, das Forum in einer anderen Seite per Iframe einzubetten. Diese Einstellung funktioniert (wenn man bereits eingeloggt ist und das Cookie vorhanden ist).

Das einzige, was nicht funktioniert, ist der SSO-Prozess. Unser SSO-Prozess läuft einwandfrei, wenn das Forum in einem neuen Tab geöffnet wird. Das Iframe unterbricht jedoch diesen Prozess, da das Cookie mit dem Zugriffstoken aufgrund einer anderen Domain nicht gesetzt werden kann. Dies führt zu einer Endlosschleife innerhalb des Iframes, da Discourse dieses Cookie nicht findet und den SSO-Prozess erneut startet.

Da dies für uns sehr wichtig ist, gibt es wirklich keine Möglichkeit, das Forum per Iframe einzubetten und dabei die SSO-Authentifizierung zu nutzen?

Die Einstellung ist ziemlich experimentell und wird in einer SSO-Umgebung nicht wirklich unterstützt. Die Rückleitung müsste einige ausgefallene Tricks anwenden, um alle Informationen zurück in den Frame zu übergeben.

Ich empfehle dir dringend, einfach eine benutzerdefinierte Kopf- und Fußzeile zu verwenden. Es ist sehr einfach, sie so einzurichten, dass sie wie die Hauptseite aussieht.

Vielen Dank für deine Antwort.

Wir werden versuchen, mit einem benutzerdefinierten Header und Footer zu arbeiten.
Gibt es in naher Zukunft Pläne, die discourseSSO in einem iframe nutzbar zu machen? Diese Funktion wäre sehr hilfreich, wenn Nutzer ein Forum in ihre Website einbinden möchten, ohne alle APIs von Discourse implementieren zu müssen.

Was hat ein iframe mit APIs zu tun?

Lieber Stephan,

wir nutzen das Forum bereits mit SSO in einer Webview innerhalb einer App. Wir möchten das Forum nun in eine neue Website integrieren, die wir gerade aufbauen. Ich glaube, wir haben dafür zwei Möglichkeiten:

Option 1: Implementierung mehrerer APIs (zum Beispiel zum Abrufen von Beiträgen und Kategorien sowie zum Posten in Discourse).

Option 2: Einbettung des Forums in unsere Website per iframe in Kombination mit SSO (kosteneffizient und wir können prüfen, ob das Forum erfolgreich ist, bevor wir weiter investieren).

Um Ihre Frage zu beantworten: Die iframe-Option hat nichts mit den APIs zu tun.

Gibt es in naher Zukunft Pläne, Discourse SSO in einem iframe funktionsfähig zu machen?

Das SSO-Protokoll leitet zu deiner Seite weiter, dort führst du die Authentifizierung durch und leitest zurück zu unserer Seite.

Wenn man hier ein Iframe einrichtet, müsste die Umleitung, die nach der Authentifizierung des Benutzers erfolgt, zu deiner Seite führen. Von dort müsste dann eine Art Magie durchgeführt werden, um die Informationen zurück ins Iframe zu übergeben.

Das ist technisch komplex und sehr schwer korrekt umzusetzen. Die Alternative mit benutzerdefiniertem Footer und Header ist technisch weitaus einfacher zu implementieren, deutlich weniger fehleranfällig und hat als zusätzlichen Bonus den Vorteil, schneller zu sein, da keine zwei separaten Anfragen erforderlich sind, um eine Seite aufzubauen.