2013-10-21 51 views
2

我正在嘗試爲我的LimeSurvey 2.0安裝找到一個關於設置第一階段LDAP驗證的解決方案。現在我面臨這個問題,我可以指定應該受保護的目錄,但是LimeSurvey使用index.php/admin作爲管理界面。有沒有可能從我的vhost.conf中爲這個確切的文件+「/ admin」指定下面的代碼?或者你知道更好的解決方案。如果有人能幫助我,那會很棒。在index.php/admin上使用Apache LDAP身份驗證

非常感謝!

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

回答

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進行保護

+0

謝謝...我會試試... –

+0

祝你好運的伴侶,隨時放棄一條線! –

1

一個可能的解決方案是讓LimeSurvey沒有的index.php在URL編輯 /application/config/config.php 並設置

'showScriptName' => false, 

這樣的URL會看上去更像

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

和LDAP可能會奏效。