Add Basic OpenID Connect support including UserInfo endpoint

Why the duplicate name: username and preferred_username?