Привет! Я пытаюсь настроить Discourse с плагином Discourse OpenID Connect и Keycloak.
Мне удалось заставить это работать: я смог не только войти в свой экземпляр Discourse, используя учётные данные Keycloak, но и связать уже существующую учётную запись Discourse с учётной записью OIDC. К сожалению, при настройке контейнера Keycloak я допустил ошибку, в результате чего потерял его конфигурацию и базу данных.
После этого я переустановил Keycloak (на этот раз правильно!) и перенастроил Discourse на использование нового Client ID. Кажется, интеграция работает (включение логов в /logs показывает, что аутентификация прошла успешно), но связать учётные записи Discourse с учётными записями OIDC больше не получается.
Когда я пытаюсь войти в Discourse, использую OIDC, вижу интерфейс создания новой учётной записи, затем нажимаю ссылку для привязки к уже существующей учётной записи; я вхожу, меня перенаправляют в Discourse, но если я выйду из системы и войду снова, я снова вижу тот же интерфейс создания новой учётной записи.
Я использовал плагин Data Explorer, чтобы проверить связи, и моя учётная запись отображается как NULL; при этом идентификатор провайдера совпадает с идентификатором пользователя в Keycloak.
У меня включена опция «OpenID Connect allow association change» (Разрешить изменение привязки OpenID Connect).
Мне кажется, что Discourse всё ещё держит данные от моей предыдущей установки Keycloak, и простого изменения нового Client ID недостаточно.
Есть ли что-то ещё, на что мне стоит обратить внимание, что я мог упустить?
Спасибо!