It seems that Rob and I are doing almost exactly the same thing except:

- He uses AD, I use OpenLDAP
- His works, mine doesn't.

        I have:
- Red Hat Linux release 7.2 (Enigma)
- OpenLDAP 2.3.38
- Dovecot 1.0.12, 1.0.13, and 1.1.rc4 (they all fail the same way).

        Sigh... Rob, It sounds like you are trying to do EXACTLY what I am
trying to do:

1. My users login with their email address.

2a. My users are all over the tree in the sense that you cannot
determine the DN from the email alone.  E.g., I am [EMAIL PROTECTED],
but my DN is "cn=Jack McKinney, ou=users, dc=lorentz, dc=com".  Thus, I
need to do a lookup to get the DN to use for auth_bind. However,

2b. My users have contact databases under their DNs.  For example, all
of my contacts are in ou=AddressBook,cn=Jack McKinney, ou=users,
dc=lorentz, dc=com. If I did a subtree search, then
[EMAIL PROTECTED] would pick up my DN, plus the DN of any entry in
anyone's addressbook for me.  I.e., if [EMAIL PROTECTED] had an account on
my system, and they had an entry in their addressbook, then the subtree
query for [EMAIL PROTECTED] would turn up two entries:

dn: cn=Jack McKinney, ou=users, dc=lorentz, dc=com
dn: cn=Jack McKinney, ou=AddressBook, cn=Foo Bar, ou=users, dc=example,
 dc=com

        Thus, I do a query with base "ou=users, dc=%Dd" and scope = onelevel,
so that only the real users are matched.

3. My users do not have any logins on the system.  Just like a web
server is just a web server and not a login system, the same with my
email: all mail lives under the same username and group
(varmail/varmail), and everyone's maildir
is /var/mail/domain/user/Maildir/

        My config is almost exactly the same as yours, except that I use static
userdb and I do not have (nor do I understand the need for; see my
previous post) pass_attrs.  I tried putting them in matching yours, but
it still fails the same way: OpenLDAP receives the query and (according
to its logs) responds with nentries=1 (i.e., exactly one match, as
expected). However, dovecot never sees the response from OpenLDAP.

On Wed, 2008-04-16 at 11:17 +0000, Rob Coward wrote:
> On Wed, 2008-04-16 at 10:39 +0100, Wojtek Bogusz wrote:
> > dear Rob, thank you for support!
> > there are small differences in mine and yours config, like:
> > 
> > - you do not have auth_bind_userdn defined. if i comment my out i cannot 
> > authenticate at all - log file:
> > auth(default): ldap(wojtek,192.168.0.200): unknown user
> > dovecot: auth(default): client out: FAIL^I1^Iuser=wojtek
> 
> Our initial connection is made using the "dn" and "dnpass" settings.
> This looks up the user's dn based on the "(&(objectClass=user)(mail=%
> u))" search criteria.
> 
> My understanding of the auth_bind_userdn setting is that it is only
> useful if all your users are in a specific tree in the ldap, so that you
> can specify (from
> http://wiki.dovecot.org/HowTo/DovecotOpenLdap?highlight=%
> 28auth_bind_userdn%29 ) auth_bind_userdn = uid=%
> u,ou=People,dc=_WIZZY_HOSTNAME_,ou=wizzy
> 
> This I believe saves the first lookup to find the dn of the user trying
> to login. Our users are spread throughout our tree, hence using the
> initial lookup as the 'dn'/'dnpass' user to find our user's dn.
> 
> If you remove auth_bind_userdn, do you have 'dn' & 'dnpass' setup with a
> suitable unprivileged user to allow the initial lookup of the logging-in
> user's dn ?
> 
> > 
> > - you have user_attrs = mail=user, me: user_attrs = 
> > homeDirectory=home,uidNumber=uid. but i do not think it make any difference.
> > 
> 
> Our users login with their email address as the userid - hence
> "mail=user" telling dovecot that the userid is stored in the 'mail'
> attribute in the ldap results. We dont bother with 'home' or 'uid' as
> they are all virtual users, using a fixed uid set by "user_global_uid =
> dovecot" and "mail_location: maildir:/data/shared/mailstore/%d/%n"
> 
> > - i did not have deref = never. do you know what does it do? i do not 
> > understand man ldapsearch explanation :(
> 
> something to do with following links to other ldap servers I think. Dont
> think its strictly necessary in a single server setup.
> 
> > 
> > Rob, could you send me your ldap config (/etc/ldap/slapd.conf) please? 
> > maybe i am making some simple mistake with my ldap config...
> 
> As I said, we use Active Directory (running on Win2k3 servers I
> believe), not slapd.
> 
> Regards,
> Rob
> 
> 
> > Rob Coward wrote:
> > > I cant help you with what is going wrong for you, but we use dovecot
> > > very successfully with ldap lookups against Active Directory, using
> > > auth_bind=yes, and it does not require anonymous connections. The
> > > initial connection is by an un-privileged user that searches for the
> > > user, then a 2nd connection is used, authenticating against AD as the
> > > looked up user using the password supplied to dovecot.
> > > 
> > > Our setup looks like this:
> > > 
> > > # rpm -q dovecot
> > > dovecot-1.0-1.2.0.el5
> > > 
> > > # dovecot -n
> > > # /etc/dovecot.conf
> > > protocols: imap pop3
> > > login_dir: /var/run/dovecot/login
> > > login_executable(default): /usr/libexec/dovecot/imap-login
> > > login_executable(imap): /usr/libexec/dovecot/imap-login
> > > login_executable(pop3): /usr/libexec/dovecot/pop3-login
> > > login_user: dovecotlogin
> > > login_process_size: 64
> > > login_processes_count: 10
> > > login_max_processes_count: 64
> > > first_valid_uid: 97
> > > default_mail_env: maildir:/data/shared/mailstore/%d/%n
> > > mail_location: maildir:/data/shared/mailstore/%d/%n
> > > mail_executable(default): /usr/libexec/dovecot/imap
> > > mail_executable(imap): /usr/libexec/dovecot/imap
> > > mail_executable(pop3): /usr/libexec/dovecot/pop3
> > > mail_plugin_dir(default): /usr/lib64/dovecot/imap
> > > mail_plugin_dir(imap): /usr/lib64/dovecot/imap
> > > mail_plugin_dir(pop3): /usr/lib64/dovecot/pop3
> > > auth default:
> > >   passdb:
> > >     driver: ldap
> > >     args: /etc/dovecot-ldap.conf
> > >   passdb:
> > >     driver: ldap
> > >     args: /etc/dovecot-ldap-fr.conf
> > >   passdb:
> > >     driver: ldap
> > >     args: /etc/dovecot-ldap-se.conf
> > >   userdb:
> > >     driver: ldap
> > >     args: /etc/dovecot-ldap.conf
> > >   userdb:
> > >     driver: ldap
> > >     args: /etc/dovecot-ldap-fr.conf
> > >   userdb:
> > >     driver: ldap
> > >     args: /etc/dovecot-ldap-se.conf
> > > 
> > > # cat /etc/dovecot-ldap.conf
> > > hosts = ad.our.net
> > > dn=CN=Lookup,CN=Users,DC=our,DC=net
> > > dnpass=XXXXXXXX
> > > auth_bind = yes
> > > ldap_version = 3
> > > base = OU=Stores,OU=UK,DC=our,DC=net
> > > deref = never
> > > scope = subtree
> > > user_attrs = mail=user
> > > user_filter = (&(objectClass=user)(mail=%u))
> > > pass_attrs = mail=user,userPassword=password,mail=userdb_user
> > > pass_filter = (&(objectClass=user)(mail=%u))
> > > user_global_uid = dovecot
> > > user_global_gid = dovecot
> > > 
> > > We use multiple userdb / passdb definitions and ldap configs in order to
> > > limit the searches of our AD schema to specific sub-trees, both for
> > > performance and as there are other users elsewhere in our schema that we
> > > dont want dovecot to allow to connect.
> > > 
> > > Hope this helps you.
> > > Rob
> > > 
> > > On Wed, 2008-04-16 at 00:19 +0100, Wojtek Bogusz wrote:
> > >>>> /etc/ldap/sldap.conf:
> > >>>> access to attr=uid,homeDirectory,uidNumber
> > >>>>         by anonymous read
> > >>>         I do not have this in my configuration, and dovecot does indeed 
> > >>> use the
> > >>> credential I provide to successfully query LDAP for the user based on
> > >>> the (mail=%u) criteria.  However, it does not see the reply.
> > >>>         The fact that it does perform the query successfully implies to 
> > >>> me that
> > >>> it does not use an anonymous connection.  Very puzzling.
> > >>
> > >> i have no idea what dovecot is doing :-) from the log file it looks like 
> > >> there are 2 queries to ldap: 1. to check provided password for provided 
> > >> user name, 2. to find a user related information (and from what Steffen 
> > >> wrote this one is done with anonymous user - correct?).
> > >>
> > >> [on the margin: why isn't it done in one query: get me the user related 
> > >> information, i am binding with provided user and with provided password. 
> > >> this way it would be one query for two things.]
> > >>
> > >> in my case, i cannot list user related information from ldap in 
> > >> anonymous connection even from command line, using: ldapsearch -x -b 
> > >> 'ou=Users,dc=frontline' '(&(objectClass=posixAccount)(uid=wojtek))' 
> > >> homeDirectory
> > >>
> > >> so i guess that i have to workout ldap settings for anonymous query. my 
> > >> /etc/ldap/slapd.conf related to access permissions is:
> > >>
> > >> access to dn.children="ou=Users,dc=frontline" 
> > >> attrs=uid,homeDirectory,uidNumber
> > >>         by anonymous read
> > >> access to attrs=userPassword,sambaNTPassword,sambaLMPassword
> > >>          by dn="cn=admin,dc=frontline" write
> > >>          by anonymous auth
> > >>          by self write
> > >>          by * none
> > >> access to dn.children="ou=Users,dc=frontline"
> > >>          by dn="cn=root,ou=Users,dc=frontline" read
> > >>          by anonymous auth
> > >>          by self write
> > >> access to dn.base="" by * read
> > >> access to *
> > >>          by dn="cn=admin,dc=frontline" write
> > >>          by * read
> > >>
> > >> maybe the problem is here... any hints please?
> > >>
> > >> regards, Wojtek
> > > 
> 
> 
> Please consider the environment before printing this email. 
> 
> 
> GAME Stores Group Ltd has been awarded Retailer of the Year at the 2006 and 
> 2007 Golden Joystick Awards and 
> 'Thames Valley Business Award' for Outstanding Employer of Choice 2006.
> 
> This e-mail and any files transmitted with it are confidential and intended 
> solely for the use of the 
> individual or entity to whom they are addressed. If you have received this 
> e-mail in error please 
> notify the system manager at:  
>  
>         mailto:[EMAIL PROTECTED]
>  
> The recipient acknowledges that the transmissions made via the Internet can 
> be corrupted and therefore 
> THE GAME GROUP PLC and any of its subsidiaries do not give any warranty as to 
> the quality or accuracy of 
> any information contained in the message or assume any liability for it or 
> for its transmission, reception or storage.  
> 
> This footnote also confirms that this e-mail message has been swept by 
> anti-virus software for the presence of computer viruses.
>  
> http://www.game.co.uk
> http://www.gamegroup.plc.uk 
> 
> Registered Number: 1937170
> Registered Office: Unity House, Telford Road, Basingstoke, Hampshire. RG21 
> 6YJ Registered in England and Wales.
-- 
Jack McKinney
GPG 1024D/99C6A174
[EMAIL PROTECTED] YM:lfaatsnat2006 AIM:jackmclorentz
Beware geeks bearing diffs

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to