SSO によるユーザー名の移行

当社のチームが使用する Discourse フォーラムでは SSO を利用しています。たまに、john_smith+lab@company.com のようにエイリアス付きのアカウントでログインするユーザーがおり、Discourse 上ではユーザー名が john_smith_lab として表示されてしまいます。

このようなエイリアスと一致しないユーザー名が多数存在するのは少し厄介です(当社はさまざまなエイリアスを利用しています)。そこで、Discourse 上でユーザー名が作成される前、または作成時に、これらのユーザー名を変更・変換する方法がないか検討しています。

例えば、すべてのエイリアスに + 記号を使用しているため、+ 以降の部分をすべてのユーザー名から切り取る方法があれば、ユーザー名を first_last という形式に統一することができます。

これは可能でしょうか?可能であれば、どのように実装すればよいでしょうか?

解決策は、SSO が適切なユーザー名を送信するように設定することだと思います。気に入らないユーザー名も、SSO から Discourse へ送信されているのでしょうか?また、「sso overrides username」がチェックされていない場合、ユーザーは(設定可能な制限内で)ユーザー名を変更できます。

「SSO がユーザー名を上書きする」のチェックを外した場合、ユーザー名の変更制限とは、最小/最大長や許可される Unicode 文字などのことを指しているのでしょうか?それらの制限は確認できましたが、他に重要な設定オプションを見落としていないか確認したく思います。

デフォルトの設定を変更せず、SSO ペイロードに適切なユーザー名を送信してください。これについては、当社の公式 Discourse 用シングルサインオン (SSO) トピックで説明しています。