Creo que la opción más sólida aquí es usar un proveedor de autenticación externo (OAuth lo que sea) con la opción “auth overrides username”:
Anula el nombre completo local con el nombre completo del sitio externo en cada inicio de sesión y evita los cambios locales. Se aplica a todos los proveedores de autenticación.