Я считаю, что лучший вариант здесь — использовать внешний провайдер аутентификации (OAuth и т. д.) с опцией «Переопределение имени пользователя через аутентификацию»:
Переопределяет локальное полное имя именем с внешнего сайта при каждом входе и запрещает локальные изменения. Применяется ко всем провайдерам аутентификации.