我配置了 squid 以使用 kerberos 身份验证,但当我尝试使用浏览器代理时,浏览器中并没有弹出要求输入用户和密码的窗口 - 由于没有身份验证,访问被拒绝。是否可以配置“negotiate_kerberos_auth”以这样工作?
答案1
不,Kerberos 不会回退到提示符。NTLM 会。或者,如果您让它执行 NTLM,则协商。当然,如果您使用 kerberos,那么这个想法肯定是根本不要有提示符?
答案2
如果您的 squid 只执行 kerberos,那么这是正常行为。如果 kerberos 失败,您可以配置另一个 acl 来执行 ldap 身份验证,但由于代理身份验证工作方式的限制,它将是纯文本。
答案3
我通过使用 LDAP 身份验证而不是 kerberos 解决了我的问题。现在我的浏览器中弹出窗口,我使用与 kerberos/LDAP (FreeIPA) 配置中相同的登录密码进行身份验证。
答案4
如果有人对“ldap auth”的工作原理感兴趣,请搜索basic_ldap_auth
Squid 的 LDAP 身份验证助手(见手册页)。
基本上,您需要添加类似的内容squid.conf
:
auth_param basic program /usr/lib64/squid/basic_ldap_auth -b "cn=users,cn=accounts,dc=example,dc=com" -D "uid=proxy_user,cn=users,cn=accounts,dc=example,dc=com" -W /etc/squid/ldap_password -f "(&(objectClass=person)(uid=%s))" -H ldap://ldap_server.example.com:389
看RedHat 文档了解更多信息。