Squid 登录成功,但 LDAP 组规则拒绝访问
先核对传给 Squid 的 LDAP 组辅助程序的用户名,再决定改密码或重写目录中的组成员关系。
如果登录成功,但组规则拒绝了请求,请先沿着身份追到 LDAP 查询,而不要急着改密码。认证、找到用户对象和匹配组成员关系是三件彼此独立的结果。
- 记录通过认证的名字:它可能是
DOMAIN\alex、[email protected]或alex。 - 检查外部 ACL 的
%LOGIN传过去的值,以及辅助程序实际搜索的用户属性。 - 对比一个被授权的测试身份和一个未授权的测试身份:得到的查询名是什么、有没有找到用户、组成员关系是否匹配。
对 ext_ldap_group_acl 来说,文档说明的 -S 会去掉 NT 风格的域成分,-K 会去掉以 @ 分隔的 Kerberos 领域成分。只有在这种变换符合目录约定时才使用它们。若两个权威域含有相同的短名,剥掉限定部分就可能选错身份。
也要把辅助程序的过滤器替换搞清楚。用户搜索和组搜索的过滤器占位符并不相同;从别的辅助程序或别的版本复制来的过滤器,即使 LDAP 连接正常,也可能查错值。
找到第一个与策略不符的结果,然后修掉那段映射或那次搜索。比较过程中不要带上绑定密钥和用户密码。有效登录之后的组查询失败,并不要求去改浏览器的认证方式。