Ok. I have it working pretty well.

I can believe how simple it really was.

The peice I was missing was putting "{SASL}username" into the password field 
for the openldap record.

This apparently toggles openldap to use SASL for the authentication instead of 
the local info.

This lets me toggle a user between being authenticated by the openldap server 
itself or asking SASL to do the authentication for it.


Funny thing is, after I figure this all out, I came across this documentation 
today which does a pretty good job explaining some of it...At this point I 
could have written this myself but hopefully it will explain some stuff to 
others:
http://www.openldap.org/doc/admin24/security.html

The one place I differed was I didn't really use a 'realm', because SASL does 
not need one for just doing authentication to another LDAP server.

I found just putting in {SASL}username, or {sasl}usern...@realm worked pretty 
much the same in my case.

I also just configured saslauthd to have a ldap_servers, and ldap_search_base 
only, since SASL is using username and password provided through openldap to do 
the binds.

I guess in some ways I am doing a unique thing in that I am actually proxying 
another real ldap server, and not doing active directory which so many seem to 
be doing these days.


This was easy enough to encourage me to look at doing some of that data merging 
to meld data from this external ldapserver with the local data in the record it 
returns to queries.


--- On Wed, 2/3/10, Howard Chu <[email protected]> wrote:

> From: Howard Chu <[email protected]>
> Subject: Re: >Proxy Just Binds/Authentications from another LDAP?
> To: "Don Hoover" <[email protected]>
> Cc: [email protected]
> Date: Wednesday, February 3, 2010, 4:11 PM
> Don Hoover wrote:
> > Well, I have been working on this question and have
> had an idea.
> > 
> > 
> > Would a way to accomplish this is by using SASL? It
> took me about 10
> > minutes
> to figure out how to configure saslauthd to verify binds to
> the other LDAP server.
> > 
> > Openldap can use SASL right? So I just need to get
> slapd to use SASL to
> verify the binds to the other external ldap server.
> > 
> > 
> > So I would have:
> > ldapclient bind request->  openldap slapd
> ->  SASL->  external ldap server bind
> > 
> > Is this a good idea?
> 
> It would work. Whether it's a good idea or not... The
> mailing list archives are already full of discussions on
> that topic, no point in repeating.
> 
> > I don't see how to make slapd use the sasl server for
> this though, the
> > only
> examples I can find are to use kerberos.
> 
> > Any ideas on how to get slapd to just use sasl like I
> have it setup?
> 
> You have to configure OpenLDAP with --enable-spasswd. And
> then you have to actually set the proper values in each
> user's userPassword.
> 
> You should also look into the ITS contributions.
> 
> http://www.openldap.org/its/index.cgi/Contrib?id=5042
> http://www.openldap.org/its/index.cgi/Contrib?id=5856
> 
> They still need some cleaning up, which is why they have
> not been pushed into CVS yet.
> 
> --   -- Howard Chu
>   CTO, Symas Corp.       
>    http://www.symas.com
>   Director, Highland Sun     http://highlandsun.com/hyc/
>   Chief Architect, OpenLDAP  http://www.openldap.org/project/
>

Reply via email to