Discourse OpenID Connect mit Keycloak

Voraussetzung: discourse und keycloak sind bereits installiert.
discourse läuft auf localhost:3000, keycloak auf localhost:8080

Discourse-Plugin installieren

zuerst muss das Plugin installiert werden. dazu einfach in plugin verzeichniss wechseln

cd discourse/plugins

und das plugin per git clonen

git clone https://github.com/discourse/discourse-openid-connect.git

nach einem Neustart im Adminverzeichniss unter Plugins nach openId suchen, sind diese vorhanden wurde das Plugin erfolgreich installiert.

Keycloak konfigurieren

In der Administrationsoberfläche von Keycloak einen Realm anlgen -> zb Discourse

Im Clients Menü einen neuen Client anlegen.:

im der folgenden Maske muss jetzt noch mindestens die Redirect Url auf localhost:3000/* geändert werden. Außerdem habe ich den Access-Typ auf confidential gestellt.

Nach dem speichern erscheint nun das zusätzlich Feld credentials als Tab, dort kann das client secret abgelesen werden. (in diesem beispiel: geheimniss)

jetzt müssen nur noch client id client secret und der discovery document url übertragen werden. die discovery document url hat folgende aufbau:

{host}:{port}/auth/realms/{realm}/.well-known/openid-configuration