OIDC 用户未与现有 Discourse 用户关联

您好!我正在尝试使用 Discourse OpenID Connect 插件 和 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 允许关联更改”选项。

我猜想 Discourse 仍然保留着我之前 Keycloak 安装的某些内容,而仅仅更改新的客户端 ID 并不能解决问题。

我是否应该检查其他我可能忽略的地方?

祝好!

1 个赞

您是否在账户之间使用了相同的电子邮件地址?您能否使用之前未与 Keycloak 关联的新账户重现此问题?

1 个赞

感谢您的快速回复!

我之前在两个账户之间没有使用相同的电子邮件地址,但我已在 Keycloak 中将其更改为与 Discourse 中使用的地址匹配,但结果仍然相同。Data Explorer 中的响应也是一样的(“NULL”用户)。

我尝试创建一个全新的用户,但收到“无效的用户名、电子邮件或密码”错误,尽管用户名完全可用,电子邮件有效,并且密码是由我的密码管理器生成的。这很可能无关紧要,但这也是我需要弄清楚的另一个问题。

1 个赞