Username validation

The impersonation framework will validate that the username is valid for a given tenant, and retrieve user roles. If the user does not exist in the user repository, the impersonation will fail.