On Sat, 2008-07-05 at 22:32 +0200, Petter Reinholdtsen wrote:
> > My preference would be to abondon libpam-ldap, as I have libnss-ldap
> > in favour of modifying libnss-ldapd to support the password changing
> > feature - I've spoken with the OpenLDAP upstream who have actually
> > included libnss-ldapd into newer versions of OpenLDAP! and they
> > appeared interested, but I've not yet spoken with the libnss-ldapd
> > maintainer (who is also upstream).
>
> In Debian Edu, we use libpam-ldap to check passwords and to allow them
> to be changed.  Is there a replacement for checking passwords using
> LDAP?  If not, we will be using pam-ldap also in the future, or at
> least until we succeed in replacing it with Kerberos. :)

Is there any documentation on changing passwords through the NSS
interface (or something similar enough)? (or do I misunderstand?)

I personally like it very much that something like pam_ldap exists. The
implementation may have it's flaws but I feel PAM is the right interface
to do these kind of things.

I know that you can expose password hashes through NSS to do
authentication with pam_unix (haven't tried this in a long time though)
but I think it is very ugly and doesn't support the other things PAM
offers (changing password, shell and gecos, etc).

Perhaps once nss-ldapd settles down a bit more I'll have some time to
tackle pam_ldap (maybe integrate a PAM module into the current code).
But don't hold your breath for that just yet.

The reason that I thought the PAM module was less of a problem than the
NSS module was:
- the PAM module should have the opportunity to clean up after itself
- the PAM module doesn't have to be as careful about it's environment
  (the nss_ldap NSS module has to do checking of file descriptors,
  handling of fork(), etc, etc)
- I had less problems with the PAM module (less bugs found)
(you could probably even do without a separate daemon by doing a fork(),
messing in that address space and pass the results back and forth)

Also note that the NSS module is very different from the PAM module:
- PAM is more of a one-shot thing (connect, maybe search, bind, maybe
  get some attributes, perhaps change something, unbind, done)
- NSS is more time-critical (we have to worry about not creating a new
  connection for each request, reuse connections, etc)
as such the current LDAP-related code in nss-ldapd is not very fit for
the PAM case (all operations are read-only and assume the same kind of
connection).

If you're interested in developing a pam_ldap replacement using
nss-ldapd code I can help you get started though.

The people from OpenLDAP (specifically Howard Chu [1]) have imported
nss-ldapd to be able to use a slapd instance to do what nslcd does in
nss-ldapd. The NSS module code from nss-ldapd is used unmodified. I
haven't tried this yet but it seems promising. Setting up a slapd
instance with replication and this interface however seems more complex
than installing nss-ldapd. They are also thinking about integrating a
PAM module but don't know about the progress they've made.

[1] http://www.openldap.org/lists/openldap-devel/200806/msg00000.html

-- 
-- arthur - [EMAIL PROTECTED] - http://people.debian.org/~adejong --

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

Reply via email to