2

我正在尝试为我的 LimeSurvey 2.0 安装设置第一阶段 LDAP 身份验证的解决方案。现在我面临的问题是,我只能指定应该受到保护的目录,但 LimeSurvey 使用 index.php/admin 作为管理界面。有没有可能从我的 vhost.conf 中为这个确切的文件 +“/admin”指定下面的代码?或者你知道更好的解决方案。如果有人可以帮助我,那就太好了。

已经非常感谢了!

<Directory />
    AuthLDAPUrl ldap://ldap.mydomain.com
    /ou=users,[...]
    AuthLDAPBindDN [...]
    AuthLDAPBindPassword [...]
    AuthBasicProvider ldap
    AuthType Basic
    AuthName [...]
    Require valid-user
    [...]
    Satisfy any
</Directory>
4

2 回答 2

1

一个可能的解决方案是通过编辑/application/config/config.php 和设置使 LimeSurvey 在 URL 中没有 index.php

'showScriptName' => false,

这样 URL 会更像

http://yourdomain/limesurvey/admin/authentication/sa/login 

和 LDAP 可能会工作。

于 2013-10-22T06:31:54.690 回答
0

为什么不将 apache 基本身份验证与 PHP LDAP 系统结合使用?

<?php
// Check username and password:
if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])){

    //store user
    $Username = $_SERVER['PHP_AUTH_USER'];
    //store password
    $Password = $_SERVER['PHP_AUTH_PW'];

    //Here the LDAP auth should be in place. $ldap is the ldap connection protocol object
    if ($ldap->doAuth($Username,$Password)) {
        //perform XML data output, based on $ldap->userinformation

    } else {
        // The text inside the realm section will be visible for the
        // user in the login box
        header('WWW-Authenticate: Basic realm="Mobile Feed"');
        header('HTTP/1.0 401 Unauthorized');
        echo '<?xml version="1.0" encoding="UTF-8"?>
        <x protocolversion="1" lang="nl">
            <x code="1">fail</fout>
        </x>   
        ';       
    }
}
?>

并将其与以下库相结合: http ://code.google.com/p/ldap-auth-php/

上面的库有一个名为protectsinglepage.php 的包含。您可以将其包含在您的主项目中。对于管理系统,只需将其排除在外,这样它就不会受到 LDAP 的保护

于 2013-10-21T11:33:02.097 回答