On 5/02/2012 12:30 a.m., Jason Fitzpatrick wrote:
Morning all.. I have a requirement to have my squid servers authenticate users before forwarding requests to an upstream server which does content filtering based on the X-Forwarded headers in the requests and all seems to be working quite well so far, (internal traffic is routed via the squids without the need to authenticate) I do have one issue though, clients that are unable to authenticate (windows update / Java updates etc) and want to set up the system so that it will attempt to authenticate the user, and if the authentication fails the request is routed regardless Is such a thing possible? I have tried all sorts of configurations but the logic to the rules still escapes me!
This is a side case of security which seems to boggle many an admins mind. The core of the problem is that missing credentials is only one *sub-set* of all failed authentications. You cannot simply take "failed auth" and assume its one of the "good" software which is failing. These days it will quite frequently be someone malicious, possibly even forging the "good" software user-agent header to get access.
In particular missing credentials is a type of failure indistinguishable from an HTTP request which has not yet even been challenged for credentials. HTTP is stateless so there is no way to identify two clients sharing a downstream proxy and one client re-trying without credentials. You must hard-code that distinction for the specific cases you know of, thus all the well published config hacks.
Amos