有没有人能给我一些有用的指导,让我在limesurvey中通过LDAP设置管理员身份验证?
自2011年以来,limesurvey wiki有一个页面没有改变,内容是设置“廉价而肮脏”的LDAP身份验证,但我怀疑这在2.00以后就不再适用了。
有一个bug报告的回复说2.05测试版有一个包括LDAP身份验证的插件机制,但我一直找不到任何关于这方面的信息-甚至没有任何关于如何首先下载和安装2.05的信息。
Limesurvey的社区设施似乎是一个致命的损失:我在IRC上得不到回复,虽然我的问题从昨天才出现在论坛上,但我对此并不抱有希望。
我希望这里有人能提供更多有用的信息。
发布于 2014-03-01 18:35:25
2.05在插件中有完整的机制。安装后,转到插件设置并激活LDAP。
发布于 2013-09-18 01:31:36
这很容易,但恐怕不是您想要的。在application/config/config.php中,您可以更改以下内容:
$config['enableLdap'] = true;然后在application/config/ldap.php中配置LDAP目录。大多数options are described here。您必须更改LDAP路径和查询,尤其是在使用ActiveDirectory的情况下。为什么我会提到这一点,稍后我将会很清楚。
LDAP身份验证是可以完成的,但没有任何现成的功能。IIRCC (如果我没有读错代码)。登录过程最终调用UserIdentity::authenticate。从(在ad10c28354431e09c3e82800721427bee31c6598版本中的第70行)开始,我想到了以下内容
在config.php中,更改此设置
$config['auth_webserver'] = true;其将认证委派给web服务器。使用将设置REMOTE_USER变量的任何内容。很含糊,我知道。但是Limesurvey只给你两个选择:内部数据库或外部数据库。我们必须选择external,在那里我们将配置LDAP身份验证和HTML表单,它们在某种程度上与Limesurvey的相匹配。
好处是你可以使用IIS来设置REMOTE_USER,如果你是在基于微软的内部网络中设置,那么就可以实现单点登录。
准备就绪后,您必须编写实现hook_get_auth_webserver_profile的代码。这意味着要在LDAP中查找用户,可能要使用ldap.conf中的参数。
这是一项大量的工作,但您可以很容易地进行概念证明。如上所述更改配置,为给定用户硬编码hook_get_auth_webserver_profile,并通过伪造您选择的REMOTE_USER http标头登录到Limesurvey。
https://stackoverflow.com/questions/18850464
复制相似问题