[OPEN-ILS-DEV] ***SPAM*** Re: LDAP Authentication Ideas

Mike Rylander mrylander at gmail.com
Fri Dec 4 14:42:57 EST 2009


On Fri, Dec 4, 2009 at 2:01 PM, Dan Scott <dan at coffeecode.net> wrote:
> On Fri, 2009-12-04 at 11:56 -0500, Mike Rylander wrote:
> <snip>
>> A dojo module with the name matching the application would be supplied
>> along with the backend service and would define the semantics of the
>> call to open-ils.auth.authenticate.complete that it implements.  So,
>> the openils dojo module would look at the protocol order, and for each
>> not spelled "native" it would require that module.  For example:
>> dojo.require('joes.random.ldap.authz.opensrf.application'); ... it
>> would then loop over each, in the order specified, attempting to log
>> the user in using the service-specific dojo plugin, which would supply
>> the correct params to its matching implementation of
>> open-ils.auth.authenticate.complete.
>>
>> Thoughts?
>
> One more wish that I don't think is covered by your napkin - and
> possibly reflecting only Conifer's needs, although as more heterogeneous
> consortia enter the scene it will likely be desired by more than just
> Conifer - it would be nice to be able to associate a particular
> configuration of a given auth method, or set of auth methods, with a
> particular org_unit.
>
> Concrete example: Laurentian University and the University of Windsor
> would both love to use LDAP authentication. But Laurentian needs to
> point at their own LDAP server, and Windsor needs to point at their own
> LDAP server.
>
> Maybe open-ils.auth/app_settings grows a <default> element, with
> optional elements for org_unit shortnames that provide the auth method &
> associated configuration for users based on their home_ou?
>
>

I think that can be covered inside
joes.random.ldap.authz.opensrf.application ("joes" for short...), no?
joes would go looking for whatever it needs (pull the user record and
get the home_ou, get OU settings for that org defining the connection
dsn for that org's LDAP server, etc).  So, in my example, maybe the
protocol names were misleading.  I said <ldap> when a more descriptive
<ou-aware-ldap> name would be better.  Does that help?

My goal right now is to try to sketch out the scaffolding needed to
make auth[z] plugable.  My plan for achieving that goal is to assume
that the details of configuration can be handled by the plugin
services that, ur, plug into a generalized structure, and that they
will have full access to the normal EG backend -- then we can
(hopefully) avoid retooling auth stuff when OAuth or RADIUS is
requested.  They'll just become another service that implements the
right methods and a dojo plugin that constructs the method calls
correctly.

-- 
Mike Rylander
 | VP, Research and Design
 | Equinox Software, Inc. / The Evergreen Experts
 | phone:  1-877-OPEN-ILS (673-6457)
 | email:  miker at esilibrary.com
 | web:  http://www.esilibrary.com


More information about the Open-ils-dev mailing list