我正在开发一个Squid代理,它需要根据Active Directory域对用户进行身份validation; 这工作正常,桑巴已正确设置和Squid通过ntlm_authvalidation用户。 squid.conf中的相关行:
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp auth_param ntlm children 5 auth_param ntlm keep_alive on acl Authenticated proxy_auth REQUIRED http_access allow Authenticated http_access deny all
现在,我需要一种方法来允许访问没有域帐户的用户。 我知道我可以在域中创build一个“互联网用户”帐户,但是这将允许访问(尽pipe是有限的)域资源(文件共享等)。 我需要一些只允许访问Internet的东西。
理想的解决scheme是使用代理服务器上的本地帐户,Linux帐户或Squid帐户; 我知道Squid支持这个,但是如果域authentication是不成功的,我不能使用域authentication和Squid /本地authentication。
可以这样做吗? 怎么样?
现在,我需要一种方法来允许访问没有域帐户的用户。 可以这样做吗?
是。
怎么样?
您可以使用“外部”ACL辅助程序,它允许您推出自己的机制。 有关更多详细信息,请参阅Squid wiki“Multiple Source”条目 。 这一点伪代码直接从那里解除:
auth_param basic program /usr/local/bin/my-auth.pl external_acl_type myAclType %SRC %LOGIN %{Proxy-Authorization} /usr/local/bin/my-acl.pl acl MyAcl external myAclType http_access allow MyAcl
…其中my-auth.pl是一个执行实际身份validation的perl脚本,并返回OK或ERR作为结果。
创build一个受限制的域用户(孤立的OU)。 从鱿鱼,创build一个鱿鱼ldap身份validation,将允许用户使用互联网。