Hello,<div><br /></div><div><div>I want to configure SQUID with two authentications methods:</div><div><br /></div><div>- Kerberos (to do SSO with posts in an ActiveDirectory domain)</div><div>- Basic (Open LDAP directory)</div><div><br /></div><div>The LDAP directory contains all the "official" accounts of people, the AD directory contains some accounts (same identifiers as on LDAP) and generic accounts.</div><div><br /></div><div>Everything works fine, but I would like to add an extra check: The Kerberos account must also exist in the LDAP directory in order to not allow use of generic accounts.</div><div><br /></div><div>I managed to do that with Squid but I get this behavior:</div><div><br /></div><div>- Account present in AD + LDAP: OK</div><div>- Account present in AD but not in LDAP: KO</div><div><br /></div><div><b>Is it possible to force LDAP authentication if "check_ldap " fail ?</b></div><div><u><br /></u></div><div><u>My config :</u></div><div><br /></div><div><div><font face="Courier"># KERBEROS</font></div><div><font face="Courier">auth_param negotiate program /usr/lib/squid/negotiate_kerberos_auth</font></div><div><font face="Courier">auth_param negotiate children 50  startup=5 idle=1</font></div><div><font face="Courier">auth_param negotiate keep_alive on</font></div><div><font face="Courier"><br /></font></div><div><font face="Courier"># LDAP</font></div><div><font face="Courier">auth_param basic program /usr/lib/squid/basic_ldap_auth -v 3 -b "ou=official" -f "(uid=%s)" ldap.contonso.lan:389</font></div><div><font face="Courier">auth_param basic children 50 startup=5 idle=1</font></div><div><font face="Courier">auth_param basic credentialsttl 1 hours</font></div></div><div><font face="Courier"><br /></font></div><div><div><font face="Courier"># Extra check</font></div><div><font face="Courier">external_acl_type check_ldap ipv4 ttl=3600 children-max=50 %LOGIN /etc/squid/check_ldap_aca.sh</font></div></div><div><font face="Courier"><br /></font></div><div><div><font face="Courier">acl authenticated proxy_auth REQUIRED</font></div><div><font face="Courier">acl check_ldap external check_ldap</font></div></div><div><font face="Courier"><br /></font></div><div><div><font face="Courier">http_access allow http port_80 check_ldap</font></div><div><font face="Courier">http_access allow https port_443 check_ldap</font></div><div><font face="Courier">http_access allow ftp port_21 check_ldap</font></div><div><font face="Courier"><br /></font></div><div><font face="Courier">http_access deny !authenticated</font></div><div><font face="Courier"><br /></font></div></div><div><div><font face="Courier">http_access deny all</font></div></div><div><u><br /></u></div><div><u>My check_ldap_aca.sh :</u></div><div><font face="Courier New"><br /></font></div><div><div><font face="Courier New">#!/bin/bash</font></div><div><font face="Courier New"><br /></font></div><div><span style="font-family: "Courier New";">while read user</span></div><div><font face="Courier New">do</font></div><div><span style="font-family: "Courier New";">        identifiant=(${user//@/ })</span></div><div><font face="Courier New"><br /></font></div><div><span style="font-family: "Courier New";">        result=$(ldapsearch -LLL -h </span><span style="font-family: Courier;">ldap.contonso.lan</span><span style="font-family: "Courier New";"> -p 389 -D "uid=usr-proxy" -w ***** </span><span style="font-family: "Courier New";">-b "ou=</span><span style="font-family: Courier;">official</span><span style="font-family: "Courier New";">" "</span><span style="font-family: Courier;">(uid=%s)</span><span style="font-family: "Courier New";">" uid)</span></div><div><font face="Courier New">        if [ ${#result} -gt 4 ]</font></div><div><font face="Courier New">        then</font></div><div><font face="Courier New">                echo "OK user=$identifiant"</font></div><div><font face="Courier New">        else</font></div><div><font face="Courier New">                echo "ERR user=$identifiant"</font></div><div><font face="Courier New">        fi</font></div><div><font face="Courier New">done</font></div></div><div><br /></div><div><br /></div><div>Thank !</div><div><br /></div><div>--</div><div>Chris</div></div>