I don't know if this technique would apply to your proxy & AD environment, but like you, we wanted to be able to control who can access the Zimbra web interface from outside. So, we set up a simple PHP web page which presents a login form, and checks if the userid is on our permit list. If not, a simple rejection page is diplayed. Or, if they
are permitted, the page authenticates the userid/pw combo against kerberos, generates a Zimbra preauth token, and then redirects them to the Zimbra web interface.
The wiki has info on how to use preauthentication.