如何添加CakePHP LDAP身份验证


How to add CakePHP LDAP Authentication?

我对CakePHP非常陌生,这是我第一次尝试使用LDAP。我使用这个CakePHP Ldap身份验证示例得到以下错误消息。

此服务器上未配置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调试方法吗?

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

检查您的系统是否可以访问这些内容。此外,请确保php-ldap.dll确实可用。至少我是这样让它在我的Windows系统上工作的。