[Dovecot] Using auth_bind_userdn causes uid to be improper case

Aaron Luchko
Fri, 02 Mar 2007 20:49:16 -0000

I'm having a problem with dovecot-1.0-1.1.rc15.fc6 + LDAP +
auth_bind_userdb.

I have the following /etc/dovecot.conf:

mail_location = maildir:/var/spool/mail/%u/
protocols = imap pop3
mail_log_prefix = "%Us(%u):%i:%h "
first_valid_uid = 5001
first_valid_gid = 5001
protocol imap {
}
protocol pop3 {
}
protocol lda {
  postmaster_address = postmaster at example.com
}
auth_verbose = yes
auth_debug = yes
auth default {
  mechanisms = plain
  userdb ldap {
    args = /etc/dovecot-ldap.conf
  }
  passdb ldap {
    args = /etc/dovecot-ldap.conf
  }
  user = root
}
dict {
}
plugin {
}

and /etc/dovecot-ldap.conf:

hosts = driveable.example.com
base = dc=example,dc=com
#dn = cn=Directory Manager
#dnpass = password
auth_bind_userdn = uid=%u, ou=People, dc=example, dc=com
uris = ldap://127.0.0.1
user_attrs = mail
user_filter = uid=%u
user_global_uid = 5001
user_global_gid = 5001
pass_filter = uid=%u

The problem is that if we have an entry in LDAP, User Name, with the uid
UName, postfix stores the users mail in /var/spool/mail/UName

If I log into dovecot using uname (LDAP uid isn't case sensitive) than
dovecot tries to look in /var/spool/mail/uname, similarly if I log in
with unAME dovecot will look in /var/spool/unAME.

However, if instead of using
auth_bind_userdn = uid=%u, ou=People, dc=example, dc=com

I bind with

dn = cn=Directory Manager
dnpass = password

than it correctly looks in /var/spool/UName regardless of the case used
when logging in.

It seems like when I log in with auth_bind_userdn %u is being left as
the value I logged in with rather than being reloaded from LDAP. I was
wondering if I have made some mistake in the configuration files to
cause this behaviour or if something else is going on?

thanks,
Aaron