安全 AD 访问

安全 AD 访问

我只是想通过 php (ldap) 访问 Active Directory-Server,以便能够使用 Windows 凭据进行网站登录。我使用标准 Windows 上的 xampp 连接到虚拟机中的 Windows Server 2012 R2 来执行此操作。现在转向生产,我担心安全性:

运行 php 的服务器必须访问 Windows/AD/LDAP 服务器。但是我读到,让登录服务器从外部可访问会导致大量暴力攻击试图获取某些密码。

大公司、大学和学校仍然允许您在家中使用工作帐户登录。他们如何做到这一点而不留下重大安全漏洞?除了 PHP/LDAP 之外还有其他选择吗?他们是否将 Web 服务器的 IP 列入白名单(我该怎么做?)或者他们是否在同一台服务器上运行 Web 服务器和 AD(同样,我该怎么做)?

答案1

大型公司、大学和学校仍允许您在家中使用工作帐户登录。他们如何做到这一点而不留下重大安全漏洞?

有几种机制允许从 LAN 外部对 Active Directory 进行身份验证,这些机制相对安全。我从未见过目录服务端口(甚至是只读 LDAP)被允许通过防火墙的情况。

对 Active Directory 进行远程身份验证的一个相当安全的示例是受 Web 应用程序代理 (WAP) 保护的 Active Directory 联合身份验证服务 (ADFS)。

从外向内:

  • 互联网和 WAP 服务器之间存在防火墙或安全设备或环境,使得仅允许 HTTPS(端口 443)通过 WAP 服务器。
  • WAP 服务器在端口 443 接收请求并代理 ADFS 服务(见下文)。外部用户与 WAP 交互,而不是直接与 ADFS 服务交互。WAP 服务器不是域成员,只能通过 HTTPS 与 ADFS 服务通信。
  • WAP 服务器(例如,在 DMZ 中)和 ADFS 服务器之间存在另一个防火墙或安全设备或环境。WAP 服务器和 ADFS 服务器之间仅允许使用端口 443(或备用端口号)。
  • ADFS 服务器位于“防火墙内部”,仅允许 HTTPS 连接。代理用户会话通过 SSL 将用户凭据传达给 ADFS 服务器。ADFS 服务器是域的成员,可以直接与一个或多个域控制器通信。它使用提供的凭据发出身份验证请求,然后将结果传回原始引用应用程序。

请注意,有问题的 ADFS 服务器并不直接位于 Internet 上,也不位于 DMZ 中,因此存在多层保护。如果 WAP 服务器受到攻击,攻击者尚未正确进入域,他们从那里进入网络的唯一漏洞是通过端口 443。

没有什么是 100% 安全的,但是 Microsoft 推荐使用此示例配置(就其价值而言),以允许从受保护的 LAN/WAN 外部登录的用户对 Active Directory 进行“联合”应用程序身份验证。

还有其他相对安全的方法将凭据传递到 AD 服务器并将结果传回,这只是使用 Microsoft 产品的一个示例。

相关内容