[ogb-discuss] Community Simplification

Alan Burlison Alan.Burlison at sun.com
Sun May 18 12:23:21 PDT 2008


John Plocher wrote:

>  From a "security" perspective, the second case is fraught with
> authorization holes.

Umm, that's seems like a bit of a sweeping statement.  The user 
management application doesn't really say anything directly about 
authorisation.  It authenticates users (do we have a registration for 
that username and does the password match) and it also allows 
participating applications to enquire which roles an authenticated user 
has.  It doesn't map those onto rights, that's left to the individual 
applications, which are best suited to interpret the roles in their 
particular context.  It may be the case that there is a direct mapping, 
e.g. for the poll application Members may map directly onto people who 
get a vote, but it would be the responsibility of the poll application 
to know about that association - and that's more or less the way things 
work in the existing system.

> Code review or ARC authority or web editing privs based on the existance of
> attributes intended to be used for community voting/membership status means
> that there is no way to say things like "is an ARC member but is not a
> website editor".

That would clearly be a bad thing, but that's not how the new 
application works.  The model used by the auth application is 
significantly richer than I think you are assuming it is.

In your original document you had a list of roles, some of which were 
fairly general ('CONTRIBUTOR'), some of which were more specific 
('EDITOR').  You didn't explicitly spell out the context in which those 
roles were valid, although if I read the descriptions the contexts are 
in there, for example GATEKEEPER clearly only makes sense in a context 
where there are gates, and EDITOR only makes sense in a context where 
there are web pages to be edited.  That's exactly the way the auth 
schema is structured - roles are tied to collective types, so as in your 
example above it is perfectly possible to have someone who has one role 
in a collective focused on website content and a different role in a 
collective that is focused on code contributions.

> This seems like a hardcoded assumption rather than a configurable policy,
> and feels shortsighted.

That seems perhaps a trifle harsh. As I've already said, I think you are 
making assumptions about the application that aren't valid.

> Rather, since you already intend to have the
> confederation of affiliated sites be controlled and limited, you could
> easily include a mechanism (aka LDAP...) whereby each system defined a
> set of roles that would indeed be added (as a relation?) to your user/auth
> schema.

That's the way the current system is set up, and frankly it is a mess. 
We've ended up with a database where five different applications are all 
wedging their data into a single schema.  As a result it is difficult to 
decide who 'owns' what pieces of data, there is widespread duplication 
and some substantial issues related to data integrity between the 
applications. It also makes it very difficult to migrate applications 
away from the central core, as everything is strongly interlinked.  That 
makes responding to the needs of the community as it evolves a slower 
and more painful process than we'd like.

In the case of the current setup, the structure we have was more-or-less 
forced on us by the constraints imposed by the current portal 
application.  One of the primary reasons for doing the auth application 
was to fix that problem, and that means imposing proper separation of 
concerns.  We don't intend to provide a central repository for 
applications to store all their authorisation data in, because that 
leads to a level of coupling that makes it difficult to achieve our goal 
of producing a flexible, distributed set of cooperating applications to 
run both opensolaris.org as well as other external applications which 
want participate.

 > Thus, the website would add "role=editor", the poll system would add
 > "role=voter", the ARC system would add "role=member, intern", etc...
 > and the affiliated sites could ask you to associate a person with one
 > of their roles (but not with some other site's roles...).

I think that approach perhaps focuses too heavily on implementation 
details and not enough on the roles people are playing in the wider 
opensolaris community.  There are several issues - firstly the word 
'editor' can be used in different contexts to mean different things and 
I'm not clear if you are suggesting that 'editor' should always mean 
'web page editor' or if other applications could use the same word to 
describe a different task.

Secondly it means that each new application which is added requires a 
large amount of work (and duplication of information) to add it to the 
system.  To go back to my earlier example, if we add a code review 
system it would make perfect sense to give anyone who has commit rights 
access to it, as the two tasks of code reviewing and code contribution 
are strongly linked.  Sure, there may be cases where we are adding a new 
facility that's not covered by any of the existing roles, and in that 
case we would add new collectives, roles and associations as necessary. 
  However requiring that each application has it's own largely disjoint 
set of information in the database isn't the best approach, as we've 
already seen from the existing system.

I don't think your suggestions are really all that at odds with what we 
are building.  However I'd like to suggest that we put this discussion 
to one side for the moment, as I suspect it might become a distraction 
from the primary issue which is community structure, not infrastructure 
implementation.  My reason for poking my head above the parapet was just 
to remind people that there has already been work going on in this area, 
and that whatever community structures are decided on need eventually to 
be mapped onto the infrastructure of OSO.  However, I think I've 
achieved that and don't want to divert the conversation any further from 
the much more important issue at hand - the OSO community.

-- 
Alan Burlison
--


More information about the ogb-discuss mailing list