Darren J Moffat wrote:
> [ Yeah Yet Another Ldap Library :-)  The more the merrier! ]
> 
> Is it possible to put the schema in /usr/share somewhere eg:
> /usr/share/openldap/schema/.  Not a big issue just seems that they
> shouldn't need to be edited.


The schema files are not static in the sense of "these will never change"
They are static in the sense of a LDAP server administrator "should not
modify these unless they really know what they are doing."

The schema files in /etc/openldap/schema are loaded via include
statements during the initialization phase via the slapd.conf configuration 
file.
Server administrators need to be able [and do] to modify, add and potentially
delete some schemas as part of the configuration setup for the server.

> 
> While I see that the prefix of "o" means Open it reads as
> old-apadd, old-apcompare old-adppasswd.  Also given the ancient precent 
> of awk, owak, nawk.   Maybe just make the prefix "open" (for the 
> commands and the man page sections) since that is already used in 
> /usr/share/doc/openldap/ giving:
> 
> openldapadd, openldapcompare, openldappasswd etc.
> 
> It may also be useful, but I wouldn't inst on it to have
> /usr/lib/openldap/bin/{ldapadd,ldapcompare,ldappasswd,...} this would 
> allow scripts written to assume OpenLDAP clis to be more easily adapted
> to OpenSolaris/Solaris by changing $PATH rather than having to change
> every instance of ldapadd etc to the prefixed name.

We are willing to adjust the names of the tools from o* to open* and adding a
second directory [/usr/lib/openldap/bin] of symlinks as suggested above if
that is the consensus of PSARC?   If so I will revise the spec.

> 
> What is the rationale for starting slapd with root and all privs rather 
> than having SMF start it as openldap:openldap with basic,net_privaddr ?

It seemed the simple solution.  I will revise the spec, correct the SMF 
manifest,
and retest etc.

> 
> The library naming looks strange but as the case says this is what is 
> used elsewhere, what is recorded as the SONAME in the ELF files ?

The history, as I understand it, is that OpenLDAP 2.3.x use libldap.so.2.3.*
[and the default name of libldap.so].  Some Linux's still distribute both
libldap.2.3.* and the newer libldap.2.4 forms.  The default name was
changed so that both libraries can exist parallel on Linux boxes.  It
just happens to work for us (OpenSolaris) as well, but for a different reason.
[Mozilla vs. OpenLDAP.2.4...]

The SONAMES from the libraries are:

$ dump -Lvp libldap-2.4.so.2.1.0|grep SONAME
[11]    SONAME          libldap-2.4.so.2
$ dump -Lvp libldap_r-2.4.so.2.1.0|grep SONAME
[11]    SONAME          libldap_r-2.4.so.2


> 
> Can this OpenLDAP server be used as the LDAP *server* for nss_ldap and 
> pam_ldap ?  If so can instructions for configuring it be provided 
> somewhere (ideally in /usr/share/doc/openldap but I'd accept 
> wikis.sun.com, opensolaris.org or blogs.sun.com initially).  If it 
> doesn't work I'd like to see a short outline of what is needed to make 
> it so.

Yes, it can.  At the moment Google has multiple references.  Some are:

http://docs.alkaloid.net/index.php/Solaris_LDAP_client_with_OpenLDAP_server
http://www.bolthole.com/solaris/LDAP.html
http://docs.lucidinteractive.ca/index.php/Solaris_LDAP_client_with_OpenLDAP_server
...

As part of this projects testing we are testing nss_ldap against the OpenLDAP
builds with the intent of publishing our own set of instructions to 
opensolaris.org
(probably the Sparks project) with relevant blog pointers, and in order to 
gather
the list of issues for additional improvements.

One of those future tasks includes making the necessary modifications
to nss_ldap to make OpenLDAP setup easier, and needed changes to idsconfig
so that idsconfig can configure both SJS DSEE and OpenLDAP slapd.

[Side note, when we change idsconfig, we expect pull out the inline
schema code and place it in a previously suggested shared location.

The expectation would be to update the LDAP admin guide with additional
new instructions as part of these idsconfig enhancements.  We expect to submit a
fast track for this work once it is further along.

> 
> I don't want it to stop the integration of this case but having the 
> existing /usr/lib/ldap.so.5 from Mozilla and the OpenLDAP library in the 
> same process is *highly* toxic and leads to very strange and hard to 
> debug problems - particularly when using LDAP over SSL/TLS.  So I'd 
> encourage the projects teams management to fund the switch to OpenLDAP 
> for libsldap and nss_ldap ASAP.

We are currently investigating the conversion of nss_ldap/libsldap to OpenLDAP.

Additionally, OpenSolaris and s10u4+ are currently integrated with the sparks
enhancements to the name service switch (PSARC/2005/133).

By design, in sparks when nscd is running, the only application that should ever
load nss_ldap is nscd.  Currently all LDAP processing is managed by nscd.
This LDAP processing includes connection pooling and shared connections of
multiple requests/responses over those managed connections.

Given that nscd/nss_ldap/libldap.so.5 are all built in a controlled environment
w/ -Bdirect, nscd already properly loads with the correct libraries.  This 
greatly
reduces the possibility of a collision due to naming services linkage issues.

In general any application linking with a libldap today, should no longer have
library collisions due to the nsswitch's use of libldap.


> 
> -- 
> Darren J Moffat

Reply via email to