Diskussion mit Keycloak für SSO

Gibt es eine Möglichkeit, Keycloak als Authentifizierungsanbieter für Discourse einzurichten? Ich benötige eine SSO-Lösung, damit Benutzer, deren Konten von Keycloak verwaltet werden, automatisch Zugriff auf die Discourse-Instanz haben und dort angemeldet sind. Ich habe mich über die OpenID-Konfiguration informiert, und es wird oft gesagt, dass Benutzer sich bei dieser Einrichtung separat anmelden und ein separates Konto in Discourse erstellen müssen. Das ist jedoch nicht genau das, was ich suche. Gibt es etwas, das ich dazu lesen könnte oder sollte? Mein Ziel ist es, Discourse und Keycloak in separaten, per Docker Compose orchestrierten Containern zu betreiben und eine nahtlose Authentifizierung zwischen ihnen zu ermöglichen. So könnte ich beispielsweise über mein API-Backend im Namen des Benutzers, der in meiner JS-Frontend-App angemeldet ist, Beiträge in Discourse erstellen, wobei die Benutzerdaten von Keycloak verwaltet werden.

Die einfachste Lösung, die ich für Benutzer mit Keycloak als ihrem Enterprise-IAM umgesetzt habe, besteht darin, Discourse SAML einzurichten

Die Konfiguration von Keycloak SAML ist recht unkompliziert

Alternativ können Sie auch eine Verbindung über OpenID Connect herstellen

Damit Benutzer sich automatisch mit SAML anmelden können, müssen Sie alle anderen Authentifizierungsmethoden deaktivieren, einschließlich der lokalen Anmeldung. Stellen Sie sicher, dass Ihr Admin-Konto bereits ein entsprechendes Konto in Keycloak hat, sonst werden Sie vom Admin-Bereich ausgeschlossen.

Interessant, danke.
Das Deaktivieren aller anderen Login-Methoden ist keine echte Option. Ich möchte Keycloak weiterhin als primäre Authentifizierungsmethode in meiner App verwenden, aber zusätzlich ermöglichen, dass Benutzer auch in Discourse existieren.
Das würde bedeuten, dass meine Benutzer sich mit Benutzername/Passwort oder über ein beliebiges soziales Netzwerk registrieren können und ein Konto erhalten, das sowohl für meine App als auch für Discourse funktioniert.
Ist so etwas möglich?

PS: Wenn ich das noch einmal durchlese, meinst du, dass du die Authentifizierungsmethoden in Keycloak oder in Discourse deaktivieren sollst?

Social Auth oder Benutzername/Passwort müsste über Keycloak implementiert werden. Außerdem ist mir gerade aufgefallen, dass sich Benutzer nicht automatisch anmelden. Es würde stattdessen ermöglichen, dass sich Benutzer direkt bei Keycloak authentifizieren, wenn sie auf den Login-Button klicken.

Sagen wir also zunächst einmal, dass ich über die API auf alles zugreifen möchte. Ist das weiterhin möglich? Die Anmeldung ist Teil der Discourse-Benutzeroberfläche.

Nehmen wir an, ein neuer Benutzer registriert sich auf meinem Keycloak-Server und ich habe diese SAML-Integration. Der Benutzer ist in meiner JS-Web-App angemeldet, und ich verfüge über sein Token. Kann ich die Discourse-API dann irgendwie nur mit diesem Token aufrufen?
Das heißt, wenn ich eine benutzerdefinierte UI erstellen möchte, um Beiträge aus meiner Web-App zu erstellen.

Soweit ich weiß, können Sie alle API-Endpunkte mit API-Schlüsseln aufrufen.

Das sollte möglich sein, nichts hindert Sie daran, dies zu tun.

@AAverin hast du eine Lösung gefunden?

@AAverin bist du das durchgegangen