added ExternalAuthProvider to auth use extenal service.