rework AuthenticateExternal with the new AuthenticationResult changes