Discourse OpenID Connect (OIDC)

안녕하세요,

이 플러그인은 수년간 잘 작동해 왔지만, 마침내 언더스코어(_)로 끝나는 사용자 이름(예: 허용되지 않는 사용자 이름)을 가진 첫 번째 SSO 사용자를 발견했습니다.

해당 사용자는 Discourse에 로그인할 수 없습니다. OIDC가 언더스코어가 없는 사용자 이름으로 계정을 생성하려고 시도하는 것 같습니다. 이는 괜찮은데, 해당 계정이 이미 존재하는 경우(사용자 이름 foo가 이미 있고, foo_는 “계정이 이미 존재합니다” 오류로 인해 로그인할 수 없음)에는 어떤 부분에서 계정 도용(시도)이 발생하는 것 같습니다:

사용자 이름 foo는 계정을 생성하거나 계정의 이메일을 변경하려고 시도했지만 해당 이메일이 이미 사용 중이라는 알림을 받습니다.

이는 foo_의 첫 번째 로그인, 즉 SSO를 통한 계정 생성 시점에 발생합니다. 즉, foo_가 이미 사용 중인 이름으로 인해 foo로 계정을 생성하려고 시도하는 것입니다. 그런데 왜 원래의 foo가 이에 대해 이메일 알림을 받게 될까요?

당신은 방금 \<discourse\>에서 계정을 생성하거나, 계정의 이메일을 \<foo의 이메일\>로 변경하려고 시도했습니다.

OIDC에서 usernameusername_가 공존하는 문제를 해결할 방법이 있을까요? 예를 들어 인증 과정에서 Discourse가 무효한 사용자 이름을 처리하는 방식을 설정할 수 있는 방법이 있는지요?