如何添加CakePHP LDAP身份验证?

时间:2013-08-09 13:40:26

标签: php cakephp authentication ldap

我是CakePHP的新手,这是我第一次尝试使用LDAP。 我使用this CakePHP Ldap Authentication示例获得以下错误消息。

  

此服务器上未配置LDAP。可能是PHP-LDAP扩展   失踪!

我的database.php代码是

class DATABASE_CONFIG {
    public $default = array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'root',
        'password' => 'my!password',
        'database' => 'my_db',
        'prefix' => '',
        //'encoding' => 'utf8',
    );      
    public $ldap = array(
        'datasource' => 'Idbroker.LdapSource',
        'host' => 'dc1.my_domain.net',
        'port' => 3268,
        'basedn' => 'CN=Users,DC=my_domain,DC=net',
        'login' => 'CN=theadmin,DC=my_domain,DC=net',
        'password' => 'my!password',
        'database' => '',
        'tls'         => false,
        'type' => 'ActiveDirectory',
        'version' => 3,
    );
}

该平台是Windows Server 2012 | Apache HTTP | CollabNet | Subversion | Microsoft Active Directory。 模块util_ldap mod_authnz_ldap 根据phpinfo.php在apache2handler上加载,服务器上的php.ini包含

extension=php_ldap.dll
[ldap]
; -1 for unlimited.
ldap.max_links = -1

是否需要在服务器上为php-ldap加载其他东西? 我应该使用其他CakePHP调试方法吗?

1 个答案:

答案 0 :(得分:1)

要使php-ldap在Win32环境中工作,您需要在系统路径中包含libeay32.dllssleay32.dll文件。根据您的PHP版本,您可能还需要libsasl.dll

检查系统上是否可以访问这些内容。另外,请确保php-ldap.dll确实可用。至少that's how i got it to work on my Windows system