I had the same problem, using version 1.7.5 and finally found a method that seems to work.
In users.php search for $qa_logged _in_userid_checked=true and add:
if (
(empty($_SESSION['qa_session_userid_'.$suffix]))
&& (!(preg_match('/^.*\?qa=login.*/',($_SERVER["REQUEST_URI"]))))
&& (!(preg_match('/^.*\?qa=forgot.*/',($_SERVER["REQUEST_URI"]))))
){ qa_redirect_raw('?qa=login');
}
I have the register link in the menu, visible only to Admins, so that I can control access. I've done just a little testing and my site is not yet live, so any suggestions to make this better are welcome, but it seems (so far) to do the trick. Since OP is using external auth, the line for "forgot my password" (matching ?qa=forgot) could be removed as it would be of no use.