有人可以向我指出在limesurvey中通过LDAP设置管理员身份验证的任何有用说明吗?
自2011年以来,limesurvey wiki的页面保持不变,关于设置“便宜又脏”的LDAP身份验证,但我怀疑这不再适用于2.00以后。
有一个错误报告的回复说2.05 beta有一个插件机制,包括LDAP身份验证,但我一直无法找到任何关于此的信息 - 甚至关于如何下载和安装2.05的任何信息第一名。
Limesurvey的社区设施似乎是一个致命的损失:我无法得到IRC的回复,虽然我的查询仅从昨天开始在论坛上,但我没有希望。我希望这里有人可能有更多有用的信息。
答案 0 :(得分:2)
2.05在Plugin中有完整的机制。安装完成后,转到插件设置并激活LDAP。
答案 1 :(得分:-1)
这很容易,但我担心这不是你想要的。在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。