Squid 与跨 LDAP 目录的重名用户名
当彼此独立的 LDAP 目录中存在相同的短用户名时,一并设计目录选择与 Squid 认证缓存。
如果两个独立目录都包含 alex,代理在核对密码之前必须先选定目录。先试 A 再试 B 会把这一选择藏进认证失败里,还可能把不可用的目录与密码被拒混为一谈。
有两种做法可以让身份变得明确:
- 限定登录。 像
[email protected]这样的名字会经由调度器选定一个由管理员指定的固定目录。请保留用于授权的限定身份与日志记录。不要把客户端提供的后缀变成任意的 LDAP 服务器地址。 - 稳定可信的请求上下文。 由监听器或其他受支持的上下文来选定目录。要定义用户漫游或改用其他监听器时会发生什么;网络位置并不等于个人身份。
同一目录的副本则不同:它们共享同一个身份命名空间。互不相关的目录不会仅仅因为都使用 LDAP 就成为副本。
让 Squid 的凭据缓存键与辅助程序的选择保持一致。auth_param 参考文档说明了 key_extras 的用法:传入额外上下文并把它纳入缓存键,其中也包括同名但以监听端口区分的情形。辅助程序必须理解扩展后的输入,所选宏也必须在该认证阶段可用。
优先选择稳定的上下文。客户端 IP 频繁变化会成倍增加缓存身份,并改变那些期待单一用户身份的管控措施。
要把未知目录、未知账户、密码被拒和目录不可用分别定义。North 不可用时,North 的账户绝不能悄悄变成 South 的 Alex。在不记录密码的前提下,让这些结果在日志中仍可区分。