代码之家  ›  专栏  ›  技术社区  ›  Topher Fangio

使用VPN的PHP/LDAP身份验证

  •  1
  • Topher Fangio  · 技术社区  · 15 年前

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

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

    现在,我确信我可以在我们的服务器上建立VPN连接,并让所有的流量通过它,但是这将为我们所有的客户机创建一个单一的故障点,并且完全超出我们的控制范围;所以这真的不是一个选项。

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

    所以,有人知道我是否可以(a)在 只有 然后使用该连接连接到LDAP服务器,或者(2)以某种方式对php/配置我的服务器进行编码,以便仅对LDAP服务器的请求使用VPN,而所有其他请求使用默认的Internet连接?

    我真的有点迷路了,要想找到一个好方法,任何帮助都会非常感谢。非常感谢!

    1 回复  |  直到 15 年前
        1
  •  1
  •   Andy Shellam    15 年前

    客户端是否有ssh服务器?如果是这样,也许您可以与客户机一起安排,通过隧道将连接传输到他们端的ssh服务器。然后,您可以要求应用程序在进行身份验证之前打开ssh隧道,并在完成后关闭它,类似于vpn。

    根据底层操作系统的不同,您可以使用VPN来实现这一点。任何一种方式都不会很漂亮,也不会缺乏性能。不管是哪种方式,隧道都将在服务器上的所有应用程序打开时可用。

    如果这是我,我将编写一个WebService来进行身份验证,与客户机建立一个协议来为我托管它,并将所有身份验证尝试中继到Web服务。您最好也将其设置为使用HTTPS。

    根据应用程序和客户机之间建立的网络以及双方对网络的控制程度,客户机可能能够将请求从一个IP路由到他们的网络-我们曾经与第三方合作过一次。我们需要在一个私有子网上访问他们的一个服务,因为我们都是同一个ISP,我们达成了一个协议,ISP将配置和维护路由,因此我们有效地获得了一个完全私有的隧道。