Replace core login function I want to replace the login function with a custom one validating against Office 365 oAuth.  I already have the connection to MS coded, but I can't find a way to replace the core login function.  I can see the "before login" hook, but that would still display the login screen.  Is there any way to accomplish via plugin, or do I have to alter the core code to accomplish what I want?
I believe what you're trying to accomplish can be done with a plugin.

Perhaps this OAuth plugin could at least offer some boilerplate for you: https://dukt.net/craft/oauth/

dukt's github also has some provider-specific plugins: https://github.com/dukt