如何使用PHP WITHOUT SSL删除OpenLDAP服务器中的条目?

时间:2017-03-07 09:46:47

标签: php ldap openldap ubuntu-server

我想使用PHP删除OpenLDAP服务器中的POSIX帐户。

public static function deleteUser($ldapconn, $username) {
    if (!$ldapconn) { return false; }
    if (LDAPUserManager::isUserExist($ldapconn, $username)) {
        $dn = "cn=".$username.",cn=users,ou=groups,dc=hahaha,dc=com";
        ldap_delete($ldapconn, $dn);  // Warning here!
    }
}

当我执行上述方法时,我收到了警告:

  

警告:ldap_delete():删除:第73行/var/www/html/system/LDAP/LDAPUserManager.php中需要强(呃)身份验证

当我在phpLDAPadmin中检查结果时,执行后不会删除用户。此外,执行ldap_modify()时会出现同样的问题。但是,当我执行ldap_add()时,问题就不会出现了。{/ p>

带有PHP脚本[192.168.1.1]和OpenLDAP服务器[192.168.1.4]的apache Web服务器实际上位于两台不同的计算机上。在搜索了一些帖子之后,SSL似乎是解决问题所必需的。但问题是我的两台服务器 没有域 。是否有任何方法可以解决(或绕过)问题?

  • 编写一个PHP函数,通过SSH将LDAP命令ldapdelete发送到OpenLDAP服务器来删除该条目。
  • 或者,我应该配置一些东西以使ldap_delete功能起作用?

Machine Connection

如何使用PHP删除/修改OpenLDAP中的用户?


服务器信息

< Web Server >
PHP Version:  PHP 7.0
HTTP Server:  apache2
Server OS  :  Ubuntu 16.04

< OpenLDAP Server >
OpenLDAP Version: 2.4.42
Server OS       :  Ubuntu 16.04

< Other Server >
Server OS  :  Ubuntu 16.04


1 个答案:

答案 0 :(得分:2)

如消息所示,您需要使用更强的身份验证连接到LDAP服务器。当您使用ldap://连接到服务器时,您可能需要尝试ldaps://或通过TLS或SASL连接到服务器。

我最喜欢的搜索引擎也显示了此消息的问题:PHP ldap - Strong(er) authentication required