Dear Dovecot mailing list people -
What I'm trying to do is use Postfix (with virtual users) and a POP3 server (we don't want IMAP - don't ask) to work against our new Active Directory servers that will be coming soon. Before we roll anything out we're testing it in the lab. Here's what we've got: x86 server running Red Hat Enterprise Linux 3 Postfix 2.0.16 Dovecot-1.0 Beta7 Windows 2003 server running Active Directory Windows XP client running Outlook
Eventually, we'd like the clients to be joined to the AD domain and that's where we'll store ALL the user information. The email will come in on our postfix server (which uses virtual users) and the clients will check it passing their email username and domain password. The catch is that USERS CAN BE ANYWHERE IN THE DIRECTORY. (I apologize for the caps, I wanted to make sure that phrase wasn't glossed over.) So, for instance:
DC=local | DC=domain | OU=group1 | | | > CN=user1 | > CN=user2 | OU=group2 | | | > CN=user3 | > CN=user4 | OU=group3 | >CN=user5
The path to user1 is therefore CN=user1,OU=group1,DC=domain,DC=local (at least in the AD world.) The path to user3 is CN=user3,OU=group2,DC=domain,DC=local. So to search for users I would think (because this is how Postfix does it) that I could have the search base as DC=domain,DC=local and then have scope = subtree. IT DOESN'T WORK. (Again, caps used for emphasis only.)
Here's the meat of the dovecot-ldap.conf file I'm using: hosts = 192.168.x.x dn = cn=Administrator,cn=Users,DC=domain,DC=local dnpass = xxxxx auth_bind = yes ldap_version = 3 base = DC=domain,DC=local scope = subtree user_attrs = sAMAccountName,mail,,,, user_filter = (&(objectClass=organizationalPerson)(sAMAccountName=%u)) pass_filter = (&(objectClass=organizationalPerson)(sAMAccountName=%u)) user_global_uid = 44 user_global_gid = 44
--- Interestingly, if I simply point the base to the actual user's container, it works just fine. The idea works from Postfix, but from dovecot it doesn't actually seem to search the tree. ---
Here's some of the output from the log files. dovecot: May 17 15:35:52 Info: auth(default): client in: AUTH 1 PLAIN service=POP3 lip= 192.168.0.199 rip=192.168.0.195 resp=AGp1c2VyAHBhc3N3b3Jk dovecot: May 17 15:35:52 Info: auth(default): ldap(user1, 192.168.0.195): bind search: base=DC=LAB,DC=local filter=(&(objectClass=organizationalPerson)(sAMAccountName=user1)) dovecot: May 17 15:36:52 Info: pop3-login: Disconnected: Inactivity: method=PLAIN, rip= 192.168.90.195, lip=192.168.90.199 dovecot: May 17 15:37:52 Info: auth(default): client in: AUTH 1 PLAIN service=POP3 lip=192.168.0.199 rip=192.168.0.195 resp=AGp1c2VyAHBhc3N3b3Jk dovecot: May 17 15:37:52 Info: auth(default): ldap(user1,192.168.0.195): bind search: base=DC=domain,DC=local filter=(&(objectClass=organizationalPerson)(sAMAccountName=user1)) dovecot: May 17 15:37:54 Info: auth(default): client out: OK 1 user=user1 dovecot: May 17 15:37:54 Info: auth(default): client out: OK 1 user=user1 dovecot: May 17 15:37:54 Info: auth(default): master in: REQUEST 1 25233 1 dovecot: May 17 15:37:54 Info: auth(default): ldap(user1,192.168.0.195): base=DC=LAB,DC=local scope=subtree filter=(&(objectClass=organizationalPerson)(sAMAccountName=user1)) fields=sAMAccountName,mail,,,, dovecot: May 17 15:38:52 Info: pop3-login: Disconnected: Inactivity: user=<user1>, method=PLAIN, rip=192.168.0.195, lip=192.168.0.199
Can anybody offer any insight? Pretty please?
- Burton