我试图find一个解决scheme,为我的LimeSurvey 2.0安装设置第一阶段的LDAPvalidation。 现在我正面临着问题,我可以指定应该受保护的目录,但是LimeSurvey使用index.php / admin作为pipe理界面。 有没有可能从这个确切的文件+“/pipe理”我vhost.conf下面的代码指定? 或者你知道一个更好的解决scheme。 如果有人能帮助我,那将会很棒。
非常感谢!
<Directory /> AuthLDAPUrl ldap://ldap.mydomain.com /ou=users,[...] AuthLDAPBindDN [...] AuthLDAPBindPassword [...] AuthBasicProvider ldap AuthType Basic AuthName [...] Require valid-user [...] Satisfy any </Directory>
一个可能的解决方案是通过编辑/application/config/config.php并设置LimeSurvey在URL中没有index.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/
上面的库有一个名为protectsinglepage.php的包含。 你可以把它包括在你的主项目中。 对于管理系统,只是把它放在外面,所以它不会被LDAP保护