OIDC 사용자가 기존 Discourse 사용자와 연결되지 않음

안녕하세요! Discourse OpenID Connect 플러그인과 Keycloak를 사용하여 Discourse를 설정하려고 합니다.

성공적으로 설정하여 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에 연결된 적 없는 새 계정으로 이 문제를 재현해 볼 수 있나요?

빠른 답변 감사합니다!

계정 간에 동일한 이메일 주소를 사용하지 않고 있었지만, Keycloak에서 Discourse에서 사용하는 이메일 주소와 일치하도록 변경했는데도 여전히 같은 문제가 발생합니다. Data Explorer의 응답도 동일합니다(“NULL” 사용자).

새로운 사용자를 새로 만들어 보았지만, 사용자 이름은 완벽하게 유효하고 사용 가능한 상태이며, 이메일도 유효하고, 비밀번호는 비밀번호 관리자가 생성한 것임에도 불구하고 “Invalid username, email or password”(잘못된 사용자 이름, 이메일 또는 비밀번호) 오류가 발생합니다. 이는 아마도 별개의 문제일 가능성이 높지만, 왜 이런 일이 발생하는지 알아내야 할 또 다른 문제입니다.

안녕하세요,

저도 같은 문제를 겪고 있습니다. 저는 Nextcloud를 OIDC 제공자로 사용하고 있습니다. 다만 이 문제는 해당 사항과 무관할 가능성이 높습니다.

Nextcloud 로그인을 통해 로그인할 수 있습니다. 그런 다음 위에 설명한 대로 기존 계정으로 로그인하거나 새 계정을 등록할 수 있는 선택지가 제공됩니다. 그러나 이메일 주소를 통해 기존 계정과 연결이 이루어지지 않습니다.

"등록"을 선택하면 즉시 로그아웃된 상태의 시작 페이지로 돌아가며, 다시 로그인해야 합니다. 오류 메시지는 표시되지 않습니다.

꽤 이상하네요.

해당 OIDC 계정에 일치하는 Discourse 계정이 없는 경우, 모든 것이 정상적으로 작동합니다. 그러면 새 계정이 바로 생성되고, 사용자 설정에서 연결된 계정도 표시됩니다.

혹시 제가 잘못하고 있는 부분이 있는지, 아니면 여기 버그가 있는 건지 아이디어를 주실 분이 있을까요?

감사합니다

Mike

안녕하세요,

할당 기능이 작동하지 않던 이유를 찾아냈습니다. 같은 문제를 겪고 계신 분들을 위해 제 해결 방법을 공유합니다.

전달된 이메일 주소는 기본적으로 "인증됨"으로 표시되지 않습니다. 이를 해결하기 위해 관리자 영역에서 OpenID Connect 제공자 → 설정으로 이동하여 “토큰에 이메일 주소 인증 정보 포함” 값을 "항상 확인됨으로 설정"으로 변경했습니다.