Re: high level design from wiki

"Luciano Resende" <[email protected]> Sun, 20 Jul 2008 12:35:57 -0700
Newsgroups gmane.comp.apache.incubator.projects
Message-ID <[email protected]>
On Sun, Jul 20, 2008 at 5:56 AM, Roland Weber <[email protected]> wrote:
> Hi Noel,
>
>>> * Should the user management default be Apache Directory or a
>>>  simple database?
>>
>> User management is ambiguous.  Are we talking about authentication?
>> Authorization?  And we should probably not be dependent on a particular
>> repository type.
>
> That was the only occurrence of the term that I left in the
> proposal :-) Since Apache Directory was mentioned, I found
> it unambiguous there. The real choice is of course LDAP or
> relational DB.

I see two things here :

- Someone enter the gallery as a "guest user" and have access to all
public albums and pictures.

- Someone enter the gallery, sign in as a user, and gain admin access
to all the albums owned by the user, as well as access to other public
albums and pictures.

Mapping this to some requirements :

There is a need for authentication, and authorization that would
consider some kind of user -> role mapping by album. Authentication
should be flexible, and quoting Noel, "we should probably not be
dependent on a particular repository type". As for the default one, I
think we should consider the deployment steps required for a user to
get the gallery up and running, and use the ones that keep these steps
to a minimum.

We also need to define how we are going to identify the "friends",
from what we are discussing, each one will have to create a login, and
then we need to allow each album owner to restrict/give access to
these friends.


>
>>> * How will access control be implemented?
>>
>> TBD, and it may exist at different control points, e.g., at the business
>> logic level (container or component managed) and data store level
>> (JCR/JackRabbit).
>
> Good point.

Having the access control done on the data store level allows low
level services (e.g REST access to pictures) to leverage the access
control in place without much extra code.

>
>>> * Will the Web service just provide data for machine to machine
>>>  exchanges or will it default to human readable?
>>
>> I doubt that the "Web service" would be in any way human readable, by
>> default or otherwise.
>
> :-)

+1

>
>>> Access control should provide the option to mark photos as public
>>> (anyone), protected (invite only), or private (just the owner).
>>> Options for managing the invites for each user are LDAP or a simple
>>> database. Permission checking can be implemented in the backend
>>> as a Jackrabbit access manager or in an application layer. Candidate
>>> technologies are JAAS and JSecurity, which both allow for pluggable
>>> authentication.
>>
>> As noted above, access control (authorization) can be handled at multiple
>> points.  The surface area related to authorization should be strictly
>> limited, and not pervasive.
>
> Agreed. The "or" was meant as an exclusive-or.
>
> cheers,
>  Roland
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>



-- 
Luciano Resende
Apache Tuscany Committer
http://people.apache.org/~lresende
http://lresende.blogspot.com/