Apache可以暴露用于validation到PHP应用程序的LDAP组?

我有一个LAMP服务器设置使用Apache2,mod_php和mod_authnz_ldapvalidation到Active Directory。 这承载了一个轻量级的PHP应用程序,用户input和操作数据。 访问基于'require ldap-group …'指令,并且许多组都是有效的。

我们现在需要为其他组添加访问权限,但访问权限必须是“只读”的。 在这种情况下,我们需要在应用程序级别确定用户所在的组,并根据该组成员资格禁用某些function。 应用程序是PHP,所以PHP可以轻松访问的东西是理想的。

理想的解决scheme:

AD组名称apache用来授予访问权限可以很容易地暴露给应用程序,类似$_SERVER['AUTHENTICATE_SAMACCOUNTNAME']

我想避免的解决scheme:

1.通过php模块访问ldap

我们已经通过apache进行身份validation,所以这会造成不必要的重复,额外的工作来实现和额外的维护开销(一个更多的绑定URL来改变)。 可行,但这是一个痛苦。

2.修改AuthLDAPURL

再一次,要求我们只为这个主机偏离我们的标准,并且保持这个前进。 可以,但稍微小一些的疼痛。 然而,添加其他ldap指令或虚拟主机更改将是微不足道的。

3.添加具有更多受限访问权限的副本

这实际上似乎是最好的主意,但是这需要我们为新组发布一个新的URL,这是一个糟糕的用户体验,可能会被拒绝。

4.基于SQL的身份validation

这么多的额外开销,这是完全不可行的这种情况下。 (而且技术上也不会回答这个问题)。

你应该可以在Apache中使用SetEnv: https : //httpd.apache.org/docs/2.2/env.html

然后在PHP中使用getenv()或$ _SERVER []数组。

http://php.net/manual/en/function.getenv.php