Allow the access over wp-login.php

Use the hook template_redirect instead – this will ensure it only runs on the front-end of your site, and not for the admin, login, registration or signup pages.

function wpse_159552_maintenance() {
    if ( ! is_front_page() ) {
        wp_redirect( home_url() );
        exit;
    }

    include 'maintenance/index.html';
    exit;
}

add_action( 'template_redirect', 'wpse_159552_maintenance' );