Использование Apache LDAP-аутентификации на index.php/admin

Я пытаюсь найти решение о настройке LDAP-аутентификации первого этапа для моей установки LimeSurvey 2.0. Теперь я сталкиваюсь с проблемой, что я могу просто указать каталог, который должен быть защищен, но 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>

2 ответа

Возможное решение состоит в том, чтобы LimeSurvey не содержал index.php в URL, отредактировав /application/config/config.php и установив

'showScriptName' => false,

Таким образом, URL будет выглядеть более

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

и LDAP может работать.

Почему бы не объединить базовую аутентификацию 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/

В приведенной выше библиотеке есть include, называемый protectsinglepage.php. Вы можете включить это в свой основной проект. Для системы администратора просто оставьте это, чтобы он не был защищен LDAP

Другие вопросы по тегам