使用VPN进行PHP / LDAP身份验证

时间:2010-02-16 15:35:52

标签: php ldap vpn

我有一个有趣的情况,谷歌似乎没有任何关于这个问题的信息。

我开发了一个用PHP编写的基于Web的软件。我们的大多数客户都有某种CAS服务器设置用于身份验证,我们只需将我们的站点指向他们的身份验证服务器。我们有一个没有CAS服务器的新客户端,所以我告诉他们我们可以使用LDAP,最好使用SSL(LDAPS)。我不确定他们是否有能力做LDAPS,但真正的问题是(目前)他们要求LDAP连接在同一个网络上,因此,我需要先连接到他们的VPN,并且然后查询他们的LDAP服务器。

现在,我确信我可以在我们的服务器上建立VPN连接,并通过它连接所有流量,但这会给我们所有客户带来单点故障,并且完全不受我们的控制;所以这真的不是一个选择。

我可能找到一种方法来建立连接,验证用户身份,然后释放连接;但这似乎是一个糟糕的选择,需要很长时间。

那么,是否有人知道我是否可以(a)在 PHP中打开VPN连接,然后使用该连接连接到LDAP服务器或(2)以某种方式编码PHP /配置我的服务器这样只有LDAP服务器的请求才能使用VPN,所有其他请求都使用默认的Internet连接?

我真的有点失去了这样做的好方法,任何帮助都将非常感激。非常感谢!

1 个答案:

答案 0 :(得分:1)

客户端是否有SSH服务器?如果是这样,也许您可​​以安排客户端将连接隧道传送到最终的SSH服务器。然后,您可以要求您的应用程序在进行身份验证之前打开SSH隧道,并在完成后关闭它,类似于VPN。

您可以使用VPN执行此操作,具体取决于底层操作系统。无论哪种方式都不会很漂亮,并且会缺乏性能。无论哪种方式,隧道将可供服务器上的所有应用程序在打开时使用。

如果这是我,我会编写一个Web服务来进行身份验证,与客户端建立协议以便为我托管,并将所有身份验证尝试中继到Web服务。理想情况下,您可以将其设置为使用HTTPS。

根据您的应用程序和客户端之间设置的网络,以及您对网络的控制程度,您的客户端可能能够将来自您的某个IP的请求路由到他们的网络 - 我们这样做了一次第三方。我们需要在私有子网上访问他们的一个服务,因为我们都在同一个ISP,我们达成了协议,ISP将配置和维护路由,以便我们有效地建立一个完全私有的隧道。

相关问题