OIDCユーザーが既存のDiscourseユーザーと関連付けられない

こんにちは!Discourse OpenID Connect plugin と Keycloak を使って Discourse を設定しようとしています。

なんとか動作させることができ、Keycloak の認証情報を使って Discourse インスタンスにログインできるだけでなく、既存の Discourse アカウントを OIDC のアカウントと連携させることもできました。残念ながら、Keycloak コンテナの設定中にミスをしてしまい、設定とデータベースを失ってしまいました。

その後、Keycloak を(今回は正しく!)再インストールし、Discourse を新しいクライアント ID を使用するように再設定しましたが、連携は機能しているように見えます(/logs でログを有効にすると、認証が実際に機能したことがわかります)が、Discourse アカウントと OIDC アカウントを連携させることができなくなりました。

Discourse にログインしようとすると、OIDC を使用し、新しいアカウントの UI に迎えられ、既存のアカウントと連携するためのリンクをクリックします。ログインし、Discourse にリダイレクトされ、ログアウトして再度ログインすると、同じ新しいアカウントの UI が表示されます。

Data Explorer プラグインを使用して連携を確認したところ、私のユーザーは NULL と表示されています。ただし、プロバイダー ID は Keycloak のユーザー ID と一致しています。

「OpenID Connect allow association change」オプションはオンになっています。

Discourse は、以前の Keycloak インストールから引き継いだ何かにまだ依存しており、新しいクライアント ID を変更するだけではうまくいかないと考えています。

見落としている可能性のある、他に確認すべきことはありますか?

よろしくお願いします。

「いいね!」 1

アカウント間で同じメールアドレスを使用していますか? Keycloak に関連付けられていなかった新しいアカウントで、この問題を再現できますか?

「いいね!」 1

迅速なご対応ありがとうございます!

アカウント間で同じメールアドレスを使用していませんでしたが、KeycloakでDiscourseで使用されているものと一致するように変更しましたが、まだ同じです。Data Explorerの応答は同じです(「NULL」ユーザー)。

新しく作成したユーザーを作成しようとしましたが、「無効なユーザー名、メールアドレス、またはパスワード」というエラーが表示されます。ユーザー名は問題なく利用可能で、メールアドレスは有効で、パスワードはパスワードマネージャーによって生成されたものですが、このエラーが発生します。これはおそらく関係ないことですが、なぜ発生しているのかを解明する必要がある別の問題です。

「いいね!」 1