I figured it out – it was the cURL support. Somehow, even though it had been enabled correctly on my server for prior applications, the “enable DLL” setting in my php.ini file got commented out. So cURL wasn’t running, and as soon as I enabled it (again; thanks dinel for the tip!) the authentication works.
Am I really the only person who has had this problem? It seems like the same problem described in the “Known Issues”, but I’m not using the Safari browser – I have since verified on Firefox, Edge, IE11, and Chrome that the problem is still a problem.
I have also tried disabling all other plugins, no effect.