Es ist mir gelungen, es zum Laufen zu bringen und mich nicht nur mit meinen Keycloak-Anmeldedaten bei meiner Discourse-Instanz anzumelden, sondern auch ein bereits vorhandenes Discourse-Konto mit dem OIDC-Konto zu verknüpfen. Leider habe ich bei der Einrichtung des Keycloak-Containers einen Fehler gemacht und seine Konfiguration und Datenbank verloren.
Ich habe Keycloak neu installiert (diesmal richtig!) und Discourse neu konfiguriert, um die neue Client-ID zu verwenden. Obwohl die Integration zu funktionieren scheint (die Aktivierung der Protokolle unter /logs zeigt, dass die Authentifizierung tatsächlich funktioniert hat), kann ich Discourse-Konten nicht mehr mit OIDC-Konten verknüpfen.
Wenn ich versuche, mich bei Discourse anzumelden, verwende ich OIDC, werde von der neuen Konto-Benutzeroberfläche begrüßt und klicke dann auf den Link, um mich mit einem bereits vorhandenen Konto zu verknüpfen. Ich melde mich an, werde zu Discourse weitergeleitet und wenn ich mich abmelde und erneut anmelde, sehe ich dieselbe neue Konto-Benutzeroberfläche.
Ich habe das Data Explorer-Plugin verwendet, um die Verknüpfungen zu überprüfen, und mein Benutzer wird als NULL angezeigt. Die Provider-ID stimmt jedoch mit der Benutzer-ID in Keycloak überein.
Ich habe die Option „OpenID Connect allow association change“ aktiviert.
Ich stelle mir vor, dass Discourse immer noch an dem festhält, was von meiner vorherigen Keycloak-Installation vorhanden war, und dass die Änderung der neuen Client-ID nicht ausreicht.
Gibt es noch etwas anderes, das ich übersehen haben könnte?
Verwenden Sie dieselbe E-Mail-Adresse für die Konten? Können Sie dieses Problem mit einem neuen Konto reproduzieren, das zuvor nicht mit Keycloak verknüpft war?
Ich habe nicht dieselbe E-Mail-Adresse für die Konten verwendet, aber ich habe sie in Keycloak geändert, damit sie mit der in Discourse verwendeten übereinstimmt, und es ist immer noch dasselbe. Die Antwort im Data Explorer ist dieselbe („NULL“-Benutzer).
Ich habe versucht, einen neuen, frischen Benutzer zu erstellen, und erhalte die Fehlermeldung „Ungültiger Benutzername, E-Mail oder Passwort“, obwohl der Benutzername völlig in Ordnung und verfügbar ist, die E-Mail gültig ist und das Passwort von meinem Passwortmanager generiert wurde. Das ist höchstwahrscheinlich nicht zusammenhängend, aber es ist etwas anderes, das ich herausfinden muss, warum es passiert.
dasgleiche Problem habe ich hier auch. Ich habe eine Nextcloud als OIDC-Provider. Das ist aber vermutlich nicht von Bedeutung für das Problem.
Ich kann mich mit dem Nextcloud-Login anmelden. Dann wird mir wie oben beschrieben die Auswahl gegeben, ein neues Konto zu registrieren oder mich mit einem bestehenden anzumelden. Eine Verknüpfung mit dem bestehenden Konto wird über die Mailadresse nicht hergestellt.
Wähle ich “Registrieren”, wird mir direkt wieder die Startseite im abgemeldeten Zustand angezeigt und ich kann/muss mich erneut anmelden. Es wird keine Fehlermeldung angezeigt.
Ist schon merkwürdig.
Es funktioniert alles gut, wenn ich mich mit einem OIDC-Konto anmelde, zu dem es kein passendes Discourse-Konto gibt. Dann wird direkt eines angelegt und auch das verknüpfte Konto in den Benutzereinstellungen angezeigt.
Vielleicht hat ja noch jemand eine Idee, was isch falsch mache oder es stellt sich doch heraus, dass es hier einen Bug gibt.
ich konnte herausfinden, warum die Zuordnung nicht funktionierte. Falls jemand dieses Problem auch lösen muss - hier meine Lösung.
Die übermittelte Mailadresse wird standardmäßig nicht als “verifiziert” gekennzeichnet. Um das zu erreichen, habe ich im Adminbereich unter OpenID Connect-Anbieter → Einstellungen den Wert für “Angabe der E-Mailadressverifizierung im Token” auf “Auf immer überprüft setzen” gestellt.