[Cosmo-dev] Re: securing access to items in multiple collections

Morgen Sagen morgen at osafoundation.org
Wed Nov 7 09:23:39 PST 2007


Questions inline...

On Nov 6, 2007, at 9:50 AM, Randy Letness wrote:

> Ok brining this thread back from the dead:
>
> I was thinking about this a little more and I like the idea of cosmo  
> moving to a tighter access control mechanism.  What about the  
> following restrictions:
>
> 1. A request must authenticate as a single principal.
> 2. A principal is either a User or Ticket
> 3. A Ticket grants access to a single resource

Is a resource a collection?

> 4. A User has access to multiple resources through ACLs
> 5. Publishing an item to multiple collections requires a User  
> principal.

It's not immediately obvious to me that #5 needs to be a requirement,  
but you must have a reason. :-)

> 6. A User principal that presents a ticket automatically has an ACE  
> added to the ticket's resource for that user.
>
> The idea is that you can only authenticate using a single ticket, or  
> as a user.  If you authenticate as a single ticket, then you have  
> access to that resource only.  This means you can't add an existing  
> item to the collection because that single ticket won't grant you  
> access to the existing item, only the target collection.  You can  
> update and add new items to the target collection.
>
> In order to publish an existing item into another collection, you  
> must be authenticated as a user and that user must have permissions  
> (through the ACL) for that item.  This prevents adding an item to  
> another collection just using a ticket.

Again, I'm not sure why this limitation is desirable.  If I have  
tickets that provide write access to two collections, shouldn't I be  
able to copy items between them?

>   So how does the user get access to the existing item?  That user  
> could be added to the ACL for the existing item/collection but that  
> would require more client work (security dialogue).  Cosmo could  
> also support adding a user to an ACL by presenting a ticket.  A  
> ticket is associated to a single resource, so if a user presents  
> that ticket, then the server could add the permissions for the user  
> to that resource.  This could  happen automatically by including a  
> set of relevant tickets in a header (an ACE for the user would be  
> added to each resource associated to each ticket).
>
> This moves cosmo to a tighter security model and paves the way for  
> true ACL support.  Thoughts?
> -Randy

A while back I proposed having the client include all relevant tickets  
when making a morsecode request:

    http://tinyurl.com/2ptlmm

Is your proposal a twist on mine except that the server *remembers*  
what tickets are associated with a user's account?  Maybe you could  
give some example scenarios and describe what gets sent back and forth.

~morgen


More information about the cosmo-dev mailing list