On Apr 4, 2011, at 6:46 PM, Eric Day wrote: > Hi Vish, > > On Mon, Apr 04, 2011 at 05:56:38PM -0700, Vishvananda Ishaya wrote: >> I agree that your suggestion is simpler, but I think we are too limited if >> we remove multi-membership and per-object overrides. Imagine that alice is >> an organization that has 10 users and a lot of instances. If i create a >> group called alice_shares, then I have to remember to add all of other 10 >> users of alice to that group, and the instances are no longer logically >> grouped because they will show up at a different url or require a different >> set of credentials to access. This sucks from a usability perspective. I >> should also mention that if we are going to the trouble of making an api to >> create new groups anyway, it might be better to just bite the bullet and >> jump into multiple ownership. > > Sorry for the confusion, I was only addressing the extra layer of > resource groups that was proposed on the wiki page. I didn't mention > per-object permissions, but I agree we still need them. I realize now > my example is a misleading one (and can be better solved by per-object > permissions), but it was only there to show another way it could be > done without "resource groups" as they were proposed. > > When you say we can't "remove multi-membership", what exactly do you > mean? I agree, and was not proposing that since an authentication ID > can list as many account/action tuples as needed.
Ah i thought the suggestion had been changed to returning only one "account" per id. I see that is not the case now. We still have issues with listing instances accross accounts or groups which i mentioned in my other email. > >> The original proposal was to keep a single owner, but allow resources to be >> overridden individually. This gives me the freedom to give bob access to >> all of my instances, or some subset of them as i see fit. It avoids the >> extra data and complication of managing service groups. I think this is the >> simplest approach, but it does sacrifice the feature of managing permissions >> on sets of objects below the ownership level. > > I think we can still do this with single owner plus per-resource > overrides, the override list would be one of the account ID's returned > for an authenticated user, which could be returned for multiple users. > > There is the question of whether the per-resource override should > simply be an account ID or another account/action tuple, and I'm > not 100% sure. I think we could allow tuples for more fine-grained > control, but would be a bit more logic to match actions and not just > account IDs. If we keep tuples here and in the list returned from > authentication, is this excessive or too complicated? I think account/action tuple isn't too complicated. If we decide not to use use the resource_groups as tags, meaning multiple can be applied to same object, then we probably need this functionality. Or else we will have some crazy user with a different resource_group owner for every single vm in their organization. > >> The resource groups that are suggested seem like something akin to tags, >> where you could tag a set of resources and give access to all of them. In >> this scenario, the instances would still have alice as the owner, but some >> of them would be tagged "alice_shares". These can actually be subject >> groups, but there has to be a mapping of resources to subjects somewhere, >> and i think that could actually be done in the service layer instead of the >> authz layer, perhaps even using instance metadata. The drawback of this >> method is that it essentially boils down to multiple-ownership and requires >> auth api additiions to allow group creation and modification. > > "These can actually be subject groups, ..." was what I was trying to > say with my example. :) Wouldn't the mapping of resources to subject > groups be the per-resource overrides in the service layer? I'm not > sure why multiple ownership is needed. I think we need to avoid > multiple ownership, since this makes many other components ambiguous > (such as a canonical URL, who to bill, etc). Yes, I was agreeing with your point. Again the multilple ownership I was suggesting was single-ownership with tags that act as pseudo-owners. Canonical url can still be under the "owner", but allowing to list by tag, for example, makes listing all the instances under a shared group possible without crazy aggregation schemes. Again, not sure it is worth the complexity, so if we can find a way around the listing issues and organization level roles issues that I mentioned in my other email, I'm happy to avoid it. > > -Eric > >> Resource groups does feels like it could be a bit YAGNI, but we definitely >> need some way for sharing to occur that maintains some usability. >> >> On Apr 4, 2011, at 4:02 PM, Eric Day wrote: >> >>> Hi Sandy, >>> >>> Thanks for putting this together, it really helps to facilitate the >>> discussion. I do have a couple concerns though with this latest design. >>> >>> The AuthZ services talk to each other. I don't see why this should >>> be happening, since a zone can be configured to talk with a number >>> of authz services directly depending on some prefix. For example, >>> in the diagram on the wiki page, Service Provider zones could be >>> configured to access authz.myco.com for any authentication requests >>> that come in for the myco.com namespace. It doesn't need to touch >>> authz.sp.com for any reason. >>> >>> You introduced resource groups, but I don't think we need resource >>> groups, as those could simply be more fine-grained subject groups. In >>> fact I think we should boil this down more to align with the previous >>> auth discussions in that we're only dealing with 'accounts', and an >>> account can be an owner, user, or group. For example, you could have >>> the accounts: >>> >>> alice >>> alice_shares >>> bob >>> >>> When alice authenticates, you would get tuple describing >>> alice can perform all actions for resources owned by alice and >>> alice shares. Alice can also create resources under alice or >>> alice_shares. When bob authenticates the tuples would allow bob to >>> perform all actions for resources owned by bob, but also perhaps >>> reboot resources owned by alice_shares. >>> >>> This model would give a great deal of flexibility and reduces the types >>> involved to just a list of (account, actions) for each authenticated >>> entity. Resources only need to track a single owner too, it doesn't >>> need a list of resource groups it belong to or anything else. >>> >>> If believe this is much how swift already works as well. >>> >>> -Eric >>> >>> On Mon, Apr 04, 2011 at 08:19:36PM +0000, Sandy Walsh wrote: >>>> Phew, ok, I've boiled down the various federated AuthZ discussions with >>>> eday, vish & jorge. >>>> >>>> I've superseded the old blueprint since the bulk of the work is clearly in >>>> the Federated AuthZ camp and not the AuthN camp. >>>> >>>> http://wiki.openstack.org/FederatedAuthZwithZones >>>> >>>> Shorter and more succinct. Should address many of the issues that have >>>> arisen to date. >>>> >>>> -S >>>> >>>> >>>> Confidentiality Notice: This e-mail message (including any attached or >>>> embedded documents) is intended for the exclusive and confidential use of >>>> the >>>> individual or entity to which this message is addressed, and unless >>>> otherwise >>>> expressly indicated, is confidential and privileged information of >>>> Rackspace. >>>> Any dissemination, distribution or copying of the enclosed material is >>>> prohibited. >>>> If you receive this transmission in error, please notify us immediately by >>>> e-mail >>>> at [email protected], and delete the original message. >>>> Your cooperation is appreciated. >>>> >>>> >>>> _______________________________________________ >>>> Mailing list: https://launchpad.net/~openstack >>>> Post to : [email protected] >>>> Unsubscribe : https://launchpad.net/~openstack >>>> More help : https://help.launchpad.net/ListHelp >>> >>> _______________________________________________ >>> Mailing list: https://launchpad.net/~openstack >>> Post to : [email protected] >>> Unsubscribe : https://launchpad.net/~openstack >>> More help : https://help.launchpad.net/ListHelp _______________________________________________ Mailing list: https://launchpad.net/~openstack Post to : [email protected] Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp

