使用多个LDAP的开源代理身份validation

我正在为我的工作设置新的Web代理。 我们最初计划购买Blue Coat代理服务器,但经济衰退来临,我们不再购买它们了。

这些代理的重要特性是它们提供了对几个LDAP代理进行身份validation的可能性。 例如,用户的某个子网针对特定的LDAP服务器进行身份validation,而另一个用户子网则针对另一个LDAP服务器进行身份validation。

这可能使用开源软件,如Squid? 我真的很喜欢Pfsense,因为界面非常简单而漂亮,能用它做这样的事情吗?

预先感谢您的帮助,

安托万

你冷得让Squid对一个单一的OpenLDAP服务器进行身份validation,作为几个后端目录的代理。 从slapd-meta(5):

NAME slapd-meta – 元目录后端

大纲/etc/ldap/slapd.conf

描述对于slapd(8)的元后端,针对称为“目标”的一组远程LDAP服务器执行基本的LDAP代理。 包含在这些服务器中的信息可以被呈现为属于单个目录信息树(DIT)。

即使通过编写一些按摩规则,这两个组之间的DN层次结构重叠,这将工作 – 我猜是这样,因为你会使用别名和委托。

无论如何,我认为允许用户对统一目录进行身份validation是非常有益的,因为无论他们发现自己身处何处,他们的身份都保持不变。

在我的回答中,我假设您已经阅读了关于Squid身份validation协议,熟悉如何configurationLDAP身份validation帮助程序,并计划在某种Unix操作系统下运行Squid。 此外,前两个答案帮助你select不同的LDAP服务器基于用户名,而不是IP子网(你提到“子网”,但ITYM“子集” – 对吗?)。

  1. 使用一个简单的脚本(语言无关紧要,使用您最喜欢的脚本),根据用户名将请求转发到不同的LDAP服务器。 一个有经验的Unixpipe理员应该在30分钟内启动并运行,这不是什么大问题。
  2. 使用一个基于用户的DN返回LDAP引用的LDAP服务器。

如果你真的想要改变基于IP子网的LDAP服务器,事情会变得有点难看,因为Squidauthentication协议只将用户名/密码对传送给authentication助手:

  1. configuration一个单一的Squid服务器,让它只监听本地主机。 这个Squid实例将完成所有的caching工作。
  2. 对于每个子网,build立另一个Squid实例,没有本地caching​​,并configuration适当的LDAP服务器。 每个Squid实例也使用不同的端口。 这些Squid实例将所有请求转发到步骤1中定义的caching。
  3. 根据您在用户浏览器中configuration代理设置的方式,您将不得不在您的Web服务器中使用DNS视图或redirect规则。