In this paper we consider the problem of scheduling n non-preemptive jobs on m identical machines with availability and eligibility constraints for minimizing the maximum lateness. That is, each machine is not continuously available at all time and each job is only allows to be processed on specified machines. Each availability interval of machines has a specific service level, and each job has to be processed at availability intervals with the service level specified or higher one. We develop a branch-and-bound algorithm to solve this scheduling problem optimally. Firstly, we propose an algorithm based on the Least Flexible Job First/ Earliest Due Date First (LFJ/EDD) rule to find the upper bound. Network flow technique is used to model the scheduling problem of the preemptive jobs into a series of base problem that is equivalent to a maximum flow problem. Then, we propose a polynomial time algorithm that combines a maximum flow algorithm and binary search procedure to solve this scheduling problem optimally and use this result as our lower bound. Computational experiments are proposed to compare the validity with complete branching method and to test the efficiency of proposed branch and bound algorithm. According to the result of computational experiment, we find that the run time of our algorithm is acceptable.