こんにちは、
このプラグインは長年問題なく動作していましたが、初めて、末尾にアンダースコア(例:許可されていないユーザー名)で終わるユーザー名を持つ SSO ユーザーに遭遇しました。
そのユーザーは Discourse にログインできません。OIDC がアンダースコアを除いたユーザー名でアカウント作成を試みているようです。これは問題ないはずですが、そのアカウントが既に存在している場合(ユーザー名 foo は存在し、ユーザー名 foo_ は「アカウントが既に存在します」というエラーでログインできない)、どこかでなりすましの試みが行われているようです。
ユーザー名 foo のユーザーに、「アカウント作成を試みました」または「アカウントのメールアドレス変更を試みましたが、そのメールアドレスは既に使用されています」というメールが届きます。
これは foo_ の最初のログイン時、つまり SSO によるアカウント作成時に発生します。つまり、foo_ は foo としてアカウント作成を試みますが、その名前は既に使用されているため失敗します。しかし、なぜ元の foo のユーザーにその通知メールが届くのでしょうか?
あなたは \<discourse\> でアカウント作成を試みました、またはアカウントのメールアドレスを \<foo のメールアドレス\> に変更しようとしましたが、そのメールアドレスは既に使用されています。
OIDC において username と username_ が混在する問題に対する解決策、あるいは認証中に Discourse が無効なユーザー名をどのように扱うかを設定する方法はありますか?