Hello reemster,
IMHO no authentication for some sites and authentication for others does not seem to be possible. But there are a couple of methods that you can try.
1. proxy.pac
Proxy.pac can be used to bypass the proxy for a few sites (white list). For other sites they go through the proxy, and are authenticated.
Automatically Configure Browsers for Proxy
But this method may not be feasible if your white list is huge.
2. Multi Instances of proxy
I don't know much about Squid, but I have used the free version of
SafeSquid - Content Filtering Internet Proxy extensively, and this is how you can precisely achieve your goal with SafeSquid:
You can run two instances of SafeSquid, listening on same IP but different ports, e.g. 192.168.0.1:8080 and 192.168.0.1:8081
On the instance that is set as proxy for the users (e.g. 192.168.0.1:8080), you do not do any authentication. In this instance, you create a profile e.g. 'No_Auth_sites' and define the sites that you want to white list. You configure 'URL Filter' to allow access to the profile 'No-Auth-Sites' ONLY. For all other sites, you use 'URL Redirect' to forward the request to the second instance (192.168.0.1:8081). You configure the second instance to authenticate users.
Now, all requests that are for the white listed websites, are served by Proxy1 directly, without authentication. All other requests are forwarded to Proxy2, which will authenticate the users, before serving their requests.
Simple, is it not? I think you can do the same with Squid.
Regards,
Sachin Purohit.