Al,
I'm glad you like the idea :). One of my personal pet peeves is the
lack of LDAP support for user management in a lot of opensource
products, so I'm hoping I can help remedy that a little.

> I think one has to consider what the benefits of using LDAP are as a
user 
> store? I would have thought the main benefit is centralisation,
single 
> sign in that sort of thing.

Well, my reason for needing LDAP as the user store is that's where all
15,000+ of my user accounts are :). It has been very useful for
single-sign on. We use a bunch of Novell products so our workstations
authenticate directly to NDS for user logins and our webapps use
eDirectory (Novell's LDAP server) for authentication using the same
credentials. We also use ActiveDirectory for a few things (Citrix,
mostly) that can't talk to LDAP directly and we have some tools that
replicate changes in NDS to AD to keep them in sync.

> In doing that one would need to use a common 
> schema that all apps authenticating users etc.. would all support I
have 
> No real experience with LDAP schema's but I guess the trick here is
to use 
> a recognised schema for users and add the extra nodes that slide
would 
> require, remembering that ACLs are quite complicated in slide, would
these 
> apply outside of slide?? or would each app using LDAP have its own 
> application specific ACLs I definitley find the ACLs difficult to get
my 
> head around.

Having a common schema isn't necessary as long as you're only talking
about authentication. The best, and most cross-implementation
authentication solution is to have LDAP server handle all the
authentication. Rather than fetching a username/password pair from LDAP
and comparing them in the application you just attempt to bind to the
LDAP server using the user's credentials. If the bind is successful then
the username/password is correct. This is actually the only way to
authenticate with eDirectory since for security reasons it's impossible
to retrieve a user's password.

Talking about ACLs gets really sticky. As far as I know every LDAP
server has it's own unique way of managing authorizations internally.
Since LDAP is just a communication protocol I don't think it has any
specifications for this, so I don't know of any standard way to get/set
access permissions on objects in an LDAP server. This makes managing
ACLs through Slide rather difficult. I see three approaches to this: 1)
Slide has a very permissive ACL for every object in the LDAP store,
basically handing all authorizations off to the LDAP server. 2) Slide
connects to the LDAP server as an "admin" user then manages ACLs
internally to control access. This has some possible security and
auditing complications, though. 3) LDAP is read only. All management is
done externally to Slide. This works for users and groups but really
limits LDAP as a general purpose Store.

The other thing to consider is how to handle Slide-specific attributes
on objects. All objects in LDAP have one or more "objectClass"
attributes that determine which properties are available on the object.
Extending the LDAP schema with a new Slide objectClass is doable but not
always feasible (I would have a hard time getting our LDAP admin to do
that, for instance). This means Slide will need to support storing
extended properties locally in addition to the properties stored in
LDAP. I was thinking of maybe extending the tx store and mapping which
properties should be stored where.


> Actually the text stores are probably better to look at than the
SQL/J2EE 
> stores as they are more node like (albeit xml node based), LDAP dI
think 
> has a node like structure so the match is good.

I think I agree with this. The only thing is the tx store is a bit more
complicated (I'm still trying to get an understanding of how Stores
work) and I think the tx store caches a lot of information to help speed
up performance. The caching is making replication a real pain at the
moment, so much so that I had to implement the first phase of my project
using Tomcat's webdav servlet with some simple filesystem replication.
Whatever stores I end up using they need to play nicely in a cluster and
it looks like the SQL stores might handle that better at the moment than
the tx store.

> The other question would be how would you talk to LDAP, would you use
JNDI 
> or specific LDAP libraries ?

JNDI. It's all I've used and I see no reason to switch now :).

> I think JNDI may have a benefit here, plus 
> slide could also benefit from a little JNDI support, again these are
not 
> areas of my expertese, just my $0.02, and I would certainly be
prepared to 
> help as long as the code was contributed back (I.E opensourced).

I'll have to check with my boss about licensing, but we're not a
software company so I really hope there aren't any problems there. I'm
hoping I can contribute everything back since what I'm working on is
likely to be fairly extensive. I'll let you know on this.


James Mason
Adventist Health
Programmer/Analyst
916.783.2576
[EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to