soversion 写道:

您好.我尝试更改了config.inc.php这个文件中关于"password_ldap_userDN_mask"的格式.
$rcmail_config['password_ldap_userDN_mask'] = 'uid=%login,ou=mail,dc=XXXXX,dc=com';
现在/var/log/maillog中显示的错误是:
Jan  9 12:54:13 mail roundcube: Bind failed: Invalid DN syntax: LDAP_INVALID_DN_SYNTAX (34):

既然我现在可以登陆Roundcube界面进行其他操作,那是不是说明我的dn和密码并没有错?
那会不会是因为加密的原因?会不会是php-mhash没有安装或者其他原因?

我更正一下
$rcmail_config['password_ldap_userDN_mask'] = 'uid=%login,ou=mail,dc=XXXX,dc=com';
openldap的log显示:
Jan  9 13:29:29 mail slapd[1884]: conn=1025 fd=19 ACCEPT from IP=127.0.0.1:48487 (IP=0.0.0.0:389)
Jan  9 13:29:29 mail slapd[1884]: conn=1025 op=0 BIND dn="uid=wjy@gelinton.com,ou=mail,dc=gelinton,dc=com" method=128
Jan  9 13:29:29 mail slapd[1884]: conn=1025 op=0 RESULT tag=97 err=49 text=
Jan  9 13:29:29 mail slapd[1884]: conn=1025 op=1 UNBIND
Jan  9 13:29:29 mail slapd[1884]: conn=1025 fd=19 closed

maillog显示:
Jan  9 13:28:47 mail roundcube: Bind failed: Invalid credentials: LDAP_INVALID_CREDENTIALS (49):

您好.我尝试更改了config.inc.php这个文件中关于"password_ldap_userDN_mask"的格式.
$rcmail_config['password_ldap_userDN_mask'] = 'uid=%login,ou=mail,dc=XXXXX,dc=com';
现在/var/log/maillog中显示的错误是:
Jan  9 12:54:13 mail roundcube: Bind failed: Invalid DN syntax: LDAP_INVALID_DN_SYNTAX (34):

既然我现在可以登陆Roundcube界面进行其他操作,那是不是说明我的dn和密码并没有错?
那会不会是因为加密的原因?会不会是php-mhash没有安装或者其他原因?

ZhangHuangbin 写道:
soversion 写道:

Unable to bind to server: Invalid credentials

"Invalid credentials" 表示你使用的 bind dn 或密码是错误的,和PHP源码没有关系。

另,支持 OpenLDAP 是没问题的,但不确定是否支持 AD。

您好,首先对您的回复表示感谢。
我连接AD之后的运行工作暂时没有找出其他毛病。
仅仅对修改密码一项我还是不死心所以还请您多多帮忙。

正如您所说的,我怀疑是dn的错误导致。
更正一下我的dn:“ou=mail,dc=XXXX,dc=com”这样.
而ldap的日志文件显示"
Jan  8 15:29:42 mail slapd[1145]: conn=1001 op=0 BIND dn="mail=wjy@XXXX.com,ou=Users,domainName=XXXX.com,o=domains,dc=XXXX,dc=com" "
格式与我的dn格式并不相符.

我看过了您的"Roundcube Webmail plugin: change password stored in OpenLDAP "这篇文章
并按照您的格式进行了操作,现有一些疑问还请您抽空解答.
1.Centos 6.3的系统在我打上epel之后也并没有php-mhash的包.我直接使用"yum install mhash"可以安装,不知还需不需要有其他关联操作?

==== 必填信息。没有填写将不予回复 ====
- iRedMail 版本: 0.8.3
- 使用的认证方法:OpenLDAP + Active Directory
- 使用的 Linux/BSD 发行版名称及版本号: KVM Virtual CentOS 6.3
- 与您的问题相关的日志信息: openldap.log maillog
====

/var/log/maillog中的信息是
Jan  9 10:48:44 mail roundcube: PHP Warning:  ldap_bind(): Unable to bind to server: Invalid credentials in /var/www/roundcubemail-0.8.2/plugins/password/drivers/ldap_simple.php on line 90

#ldap_simple.php 90行代码如下:

// Bind
            if (!ldap_bind($ds, $binddn, $bindpw)) {
                    ldap_unbind($ds);
                return PASSWORD_CONNECT_ERROR;
            }

        $entree[$pwattr] = $crypted_pass;

            // Update PasswordLastChange Attribute if desired
        if ($lchattr) {
                $entree[$lchattr] = (int)(time() / 86400);
            }
#我不知道是不是由于使用的ldap+ad的原因,这段代码要做适当的修改?

#我开启了openldap的loglevel=256,修改密码失败时显示如下:
Jan  8 15:29:42 mail slapd[1145]: conn=1001 fd=14 ACCEPT from IP=127.0.0.1:47686 (IP=0.0.0.0:389)
Jan  8 15:29:42 mail slapd[1145]: conn=1001 op=0 BIND dn="mail=wjy@XXXX.com,ou=Users,domainName=XXXX.com,o=domains,dc=XXXX,dc=com" method=128
Jan  8 15:29:42 mail slapd[1145]: conn=1001 op=0 RESULT tag=97 err=49 text=
Jan  8 15:29:42 mail slapd[1145]: conn=1001 op=1 UNBIND
Jan  8 15:29:42 mail slapd[1145]: conn=1001 fd=14 closed

我的dn格式为"ou=mail,cn=XXXX,cn=com"
ps:目前AD是一台windows 2003 server,这几天将会迁移到windows server 2008 R2。不知道还需要改变也什么配置??