I'm using the following configuration (squid 2.5stable4, dansguardian 2.6.1, on redhat 
9):

squid(1) -> dg -> squid(2)

squid(1) just handles acls and uses dg as it's cache peer (cache peer ... 
login=*:password).
dg provides content filtering and decodes basic auth usernames for it's log.
squid(2) acts as a cache for dg.

Squid(1) is passing the username for users that authenticate via basic auth, but not 
for users that get access through an ident acl. The ident username is showing up in 
squid(1)'s logs, but it's passing a null username in the auth header.

For ident I'm using an external acl that passes the ident info to a program that 
checks to see if the username is in an LDAP group. I saw something in the squid.conf 
comments under external_acl_type that mentions a user= keyword, so I tried having my 
program return "OK user=foo" but I think that was just me heading in the wrong 
direction... I saw a patch at 
http://www.squid-cache.org/mail-archive/squid-dev/200201/0001.html that would help my 
situation (although it would require dg to parse the additional header), but it looks 
like it was denied (something about it not being as secure as the basic auth method). 
I'm not sure where src/http.c gets it's username from for HDR_PROXY_AUTHORIZATION (see 
line 885 -> 891) but maybe that's a starting point?

I think I'm just missing something obvious here - like a way to inform squid that the 
ident username IS my username.

- David

Reply via email to