성공적으로 설정하여 Keycloak 자격 증명으로 Discourse 인스턴스에 로그인할 수 있었고, 기존 Discourse 계정을 OIDC 계정에 연결하는 것도 가능했습니다. 불행히도 Keycloak 컨테이너를 설정하는 과정에서 실수를 저질러 구성 및 데이터베이스를 잃어버렸습니다.
이후 Keycloak를 (이번에는 제대로!) 다시 설치하고 Discourse를 새로운 Client ID를 사용하도록 다시 구성했습니다. 통합이 작동하는 것처럼 보입니다(/logs에서 로그를 활성화하면 인증이 실제로 작동한 것을 볼 수 있음)만, 더 이상 Discourse 계정을 OIDC 계정에 연결할 수 없습니다.
Discourse에 로그인하려고 하면 OIDC를 사용하고, 새 계정 UI가 표시되며, 기존 계정에 연결하기 위해 링크를 클릭합니다. 로그인 후 Discourse로 리디렉션되지만, 로그아웃한 후 다시 로그인하면 동일한 새 계정 UI가 표시됩니다.
Data Explorer 플러그인을 사용하여 연결 상태를 확인해 보았더니, 제 사용자는 NULL로 표시되었습니다. 다만 Provider ID는 Keycloak의 User ID와 일치합니다.
“OpenID Connect allow association change” 옵션은 켜져 있습니다.
Discourse가 이전 Keycloak 설치에서 남았던 정보를 여전히 유지하고 있으며, 단순히 새로운 Client ID만 변경하는 것만으로는 해결되지 않는다고 추측합니다.
계정 간에 동일한 이메일 주소를 사용하지 않고 있었지만, Keycloak에서 Discourse에서 사용하는 이메일 주소와 일치하도록 변경했는데도 여전히 같은 문제가 발생합니다. Data Explorer의 응답도 동일합니다(“NULL” 사용자).
새로운 사용자를 새로 만들어 보았지만, 사용자 이름은 완벽하게 유효하고 사용 가능한 상태이며, 이메일도 유효하고, 비밀번호는 비밀번호 관리자가 생성한 것임에도 불구하고 “Invalid username, email or password”(잘못된 사용자 이름, 이메일 또는 비밀번호) 오류가 발생합니다. 이는 아마도 별개의 문제일 가능성이 높지만, 왜 이런 일이 발생하는지 알아내야 할 또 다른 문제입니다.