On 10/19/07, Darren J Moffat <darrenm at opensolaris.org> wrote:
> Jason King wrote:
> > Probably not quite the best description, but since I opened my big
> > mouth last weekend, thought I should probably go ahead and propose
> > this as a formal project.
> >
> > Currently, all of the supported methods of specifying server access
> > control with LDAP (netgroups, or pam_list) involve storing some aspect
> > of the policy on the managed systems themselves.  As a result, changes
> > in policy requires touching all impacted servers.  I think it would be
> > very useful if this could be centralized in LDAP.
>
> pam_list was purposely per system rather than held in LDAP.  Since you
> can use netgroups in pam_list's files that allows you to put the "real"
> policy in the LDAP database.  It could be extended to look in LDAP as
> well but that probably requires defining and deploying a new schema.  As
> a historical note pam_list actually existed long before we adopted LDAP
> as a nameservice even though it was only recently integrated (my oldest
> SCCS version for it is 99/10/12).

Moving into LDAP the list of netgroups whose members are allowed to
access a particular server is one potential solution.  I actually had
something a bit more generic in mind, however I wanted to initially
avoid focusing too much on a specific solution.

I've always thought it strange that LDAP can contain a very rich
amount of information about a user, but there is really no easy way to
leverage it when it comes to implementing any sort of server policy.

This may partially be a philosophical difference -- in my mind at
least, the question of who a user is, how they are identified, and
what they can do are closely linked.  I want one place to manage all
of this versus 'go to LDAP for this, but go to individual servers for
that'.

>
> > Also, there is no easy way to do fine-grained control of group and
> > role membership for LDAP managed systems and still maintain
> > centralized management within LDAP.  For example, I might want 'jason'
> > to have access to the 'root' role on systemA, but not systemB.  Or, on
> > systemC, 'bob' should have access to different groups than systemD.
> > Any of the ways I can imagine doing this w/ LDAP are not particularly
> > pretty (and have problems).
>
> It shouldn't be limited to LDAP but to any supported nameservice.
>
> I've implemented the enforcement part before of this and a possible
> implementation is in 4986798, have a lot at that CR and see if the
> proposed solution meets your needs.

That could work as well.  It would be interesting to explore the
differences in (for lack of a better term that I'm aware of) a
'user-centric' versus a 'host-centric' approach -- do you effectively
list the hosts a user has access to or do you list the users allowed
on a given host (I'm including in this variations on this theme)?
While ultimately the two are equivalent, there might be advantages to
representing it in one form or the other (for management or audit,
etc.).

>
> It is great you want to help implement a project however to do this the
> hard part (and the reason this hasn't been done already) is extending
> smc.  Unfortunately smc is also closed source.  There maybe light at the
> end of the tunnel though if Visual Panels[1] gets traction.

At least for the project as I initially envisioned it, I was more
concerned about first deciding how to approach it, then implementing
the client side.   Most of the server side would be more of a
configuration exercise than code, so could be done even without the
support of mgmt tools (though potential combersome).  I would prefer
any implementation be optional (i.e. if you don't configure the server
side, the LDAP behavior is the exact same as it is today), so would
smc be a hard requirement in the face of that?

>
> Finally I assume since you are proposing a project you actually want to
> write code for this rather than you are asking someone else to do so ?
>
> --
> Darren J Moffat
>

I'm actually proposing writing the code (either myself or with others
interested in doing it).  As I said, I have some ideas on how to do
this (different from what was suggested), but don't want to lock
myself into any particular implementation from the start.

Reply via email to