On Wed, Sep 03, 2008 at 02:52:21PM +0200, Mark Phalan wrote:
> Hi Will,
> 
> With MIT Kerberos the following directory structure is used to store
> plugins:
> 
> <prefix>/lib/krb5/plugins
> <prefix>/lib/krb5/plugins/kdb
> <prefix>/lib/krb5/plugins/kdb/db2.so
> <prefix>/lib/krb5/plugins/preauth
> <prefix>/lib/krb5/plugins/preauth/pkinit.so
> 
> Was there any reason you didn't follow the MIT convention with plugin
> directories when integrating the LDAP plugin support?

I can not remember what I was thinking at the time but I'm guessing that
since the KDB plugins are explicitly configured in krb5.conf with the:

  The [dbmodules] Section
     This section consists of relations that  provide  configura-
     tion  information  for  plug-in  modules. In particular, the
     relations describe the configuration for LDAP  KDB  plug-in.
     Note that use of the db2 KDB plug-in is the default behavior
     and that this section does not need to be filled out in that
     case.

     db_library

         Name of the plug-in library. To use the LDAP KDB plug-in
         the name must be kdb_ldap. The default value is db2.

     db_module_dir

         Path  to  the  plug-in   libraries.   The   default   is
         /usr/lib/krb5.

that it kept the config simpler.  Note that these were the parameters
used at the time I ported the MIT ldap plugin code to Solaris.  It is
possible that things have changed since in the MIT tree.  For example I
see that they do not have a db_module_dir so I bet the code now has more
assumptions about the plugin dir structure.

So the choices are:

1. Leave the KDB plugins where they are and use the plugins/preauth
   dir structure for the preauth plugins.

2. Move the KDB plugins as well but this will entail some documentation
   modification and a ARC review.

> The way the pre-auth plugin support works is that it will scan a
> directory for plugins - if /usr/lib/krb5 is used for that it will dlopen
> every binary there when trying to determine if it is a plugin or not.
> 
> It seems to me that it would be cleaner for the pre-auth plugins to be
> located in a separate sub-directory otherwise all objects
> in /usr/lib/krb/ will be dlopen'ed when looking for plugins.
> If we do this for the pre-auth plugins it would make sense for the same
> to be done for the kdb plugins.
> 
> Would anyone object if the plugins were layed out as follows?
> 
> /usr/lib/krb5/preauth/
> /usr/lib/krb5/preauth/pkinit.so
> /usr/lib/krb5/kdb/
> /usr/lib/krb5/kdb/db2.so
> /usr/lib/krb5/kdb/kldap.so

Doesn't bother me for the preauth plugins, see my comment above for the
kdb plugins.

> Would we need a PSARC case to move the db2 and ldap plugins (maybe could
> be rolled into the PKINIT PSARC case?) ?

Again, see my first comment.

-- 
Will Fiveash
Sun Microsystems Inc.
http://opensolaris.org/os/project/kerberos/

Reply via email to