这很容易,但恐怕这不是你想要的。在application/config/config.php
,你改变这个:
$config['enableLdap'] = true;
然后在 中配置您的 LDAP 目录application/config/ldap.php
。大多数选项都在此处描述。您将不得不更改 LDAP 路径和查询,尤其是在您使用 ActiveDirectory 时。为什么我会提到这一点,稍后会很清楚。
可以进行 LDAP 身份验证,但没有任何开箱即用的功能。IIRCC(如果我正确阅读了代码)。登录过程最终调用UserIdentity::authenticate。继(在第 70 行版本ad10c28354431e09c3e82800721427bee31c6598
)之后,我想出了这个
在 config.php 中,改变这个
$config['auth_webserver'] = true;
这会将身份验证委托给 Web 服务器。使用任何可以设置REMOTE_USER
变量的东西。这很模糊,我知道。但是 Limesurvey 只给你两个选择:内部数据库或外部数据库。我们必须选择 external,我们将在其中配置与 Limesurvey 的有点匹配的 LDAP 身份验证和 HTML 表单。
好处是您可以使用 IIS 进行设置REMOTE_USER
,如果您在基于 Microsoft 的内部网络中进行设置,则可以实现单点播放。
有了这些,您将不得不编写实现hook_get_auth_webserver_profile
. 这意味着在 LDAP 中查找用户,可能使用ldap.conf
.
这是很多工作,但您可以轻松地进行概念验证。更改配置,hook_get_auth_webserver_profile
为给定用户硬编码并通过伪造您选择的 REMOTE_USER http 标头登录 Limesurvey。