[openstack-dev] [swift] [keystone] Keystone v3 API domains in Swift
Bhandaru, Malini K
malini.k.bhandaru at intel.com
Tue Jan 8 21:41:54 UTC 2013
>From a mapping perspective, might one say the
"Domain" maps to Swift's "Account"
"Project" maps to Swift's "Container"
Thanks
Malini
-----Original Message-----
From: David Chadwick [mailto:d.w.chadwick at kent.ac.uk]
Sent: Tuesday, January 08, 2013 12:53 PM
To: OpenStack Development Mailing List
Subject: Re: [openstack-dev] [swift] [keystone] Keystone v3 API domains in Swift
Hi Alex
I can agree with you but would go further, in that we need both global roles and local roles. So, if I specify
https://swift/AUTH_>Test
then I am specifying the Test global role, but if I specify
https://swift/AUTH_>{DOMAIN_ID}_{PROJECT_ID}_Test
I am specifying the role Test which is local to the project. Similarly
https://swift/AUTH_>{DOMAIN_ID}_Test
is the Test local role of the domain.
These are unambiguous since the _ is the separator between domains and projects, rather like the . is the separator in domain names.
Note, what you should not be able to do is specify
https://swift/AUTH_>{PROJECT_ID}_Test
as this would be ambiguous. Which domain does it refer to?
regards
David
On 08/01/2013 20:11, Alexandra Shulman-Peleg wrote:
> I think that there is a problem with simply using https://SWIFT/AUTH_
> <https://swift/AUTH_>{PROJECT_ID}instead of the current
> https://SWIFT/AUTH_ <https://swift/AUTH_>{TENANT_ID} since it will
> loose the proper level in the hierarchy. We need something that will
> represent the hosted enterprises and this is the goal of domains.
> Project are more fine-grained and can represent departments or
> projects. For example, following the description of Henry if two
> different enterprises with use the project name "Test" both with map
> to https://SWIFT/AUTH_ <https://swift/AUTH_>Test.
>
> I think that we need to have both the domain id and the project id in
> the URL/account name. For example as https://SWIFT/AUTH_
> <https://swift/AUTH_>{DOMAIN_ID}_{PROJECT_ID} or as https://SWIFT/
> <https://swift/>{DOMAIN_ID}_{PROJECT_ID}. In the second option we may
> try using the existing reseller prefix mechanism to simplify the
> implementation. Having the doman_id in the account name/URL is
> important to isolate the accounts that belong to different domains and
> remove the requirements for the global uniqueness of project names.
>
> Best Regards,
> Alex.
>
>
>
> From: Chuck Thier <cthier at gmail.com>
> To: OpenStack Development Mailing List
> <openstack-dev at lists.openstack.org>,
> Date: 08/01/2013 09:38 PM
> Subject: Re: [openstack-dev] [swift] [keystone] Keystone v3 API domains
> in Swift
> ----------------------------------------------------------------------
> --
>
>
>
> Hi Henry,
>
> >From a swift perspective, I think we are fine there, as we do not
> use the user name or project name anywhere. At the moment, I'm
> thinking that we can do auth in a similar way as we did with v2.0 api.
> An "account" in swift is still tied to the project_id (which used to
> be tennant_id), which is in the storage url like:
> https://SWIFT/AUTH_ <https://swift/AUTH_>{PROJECT_ID}. Keystone
> middleware in swift validates that the given token has permission for
> the given Project ID.
>
> >From this point of view domains are an abstract concept in keystone
> only, and wouldn't mean anything directly in swift.
>
> Please let me know if any of my assumptions are incorrect.
>
> Thanks,
>
> --
> Chuck
>
> On Tue, Jan 8, 2013 at 1:23 PM, Henry Nash <henryn at linux.vnet.ibm.com>
> wrote:
> > Chuck,
> >
> > So user_id and project_id are always globally unique - so we are
> safe there. The problem is when you specify user name or project name
> in the cases when we have to handle enterprises being represented by a
> domain and they insist that their name attributes (e.g. user names,
> project names etc.) be private to that domain (e.g. "what do you mean
> I can't call my project "Test" because some other customer in another
> domain got there first!?!"). See the following blueprint which
> introduces this ability as optional for domains:
> https://review.openstack.org/#/c/18805/
> >
> > For such domains, we cannot assume that user_name or project_name
> (or tenant_name as it used to be called) are globally unique.
> "Domain_name (or id) plus user_name" as well as "Domain_name (or id)
> plus project_name" will be unique however.
> >
> > Henry
> > On 8 Jan 2013, at 19:05, Chuck Thier wrote:
> >
> >> Yeah, I was hoping for more clarity, as it would help to figure
> out >> how to best map the concepts in swift. A couple of quick
> questions >> come to mind. When a request is validated, is the
> domain required, or >> is a user_id and project_id sufficient? Is
> the concept of a domain >> useful in the context of swift?
> >>
> >> --
> >> Chuck
> >>
> >> On Tue, Jan 8, 2013 at 11:37 AM, heckj <heckj at mac.com> wrote:
> >>> The best is probably
> https://github.com/openstack/identity-api/blob/master/openstack-identi
> ty-api/src/markdown/identity-api-v3.md,
> but it's a bit light on use-cases around the concepts I'm afraid.
> >>>
> >>> -joe
> >>>
> >>> On Jan 8, 2013, at 9:19 AM, Chuck Thier <cthier at gmail.com> wrote:
> >>>> Is there documentation anywhere that defines all of these, and
> the use >>>> cases? That would help us figure out how to map these
> concepts to >>>> swift.
> >>>>
> >>>> --
> >>>> Chuck
> >>>>
> >>>> On Tue, Jan 8, 2013 at 11:13 AM, Dolph Mathews
> <dolph.mathews at gmail.com> wrote:
> >>>>> I think it would be practical to expose the authenticated
> user's DOMAIN_ID >>>>> and DOMAIN_NAME into the request environment
> for the underlying service / >>>>> middleware to consume, as we do
> today with TENANT_ID / TENANT_NAME (soon to >>>>> be deprecated in
> favor of PROJECT_ID / PROJECT_NAME).
> >>>>>
> >>>>>
> >>>>> -Dolph
> >>>>>
> >>>>>
> >>>>> On Tue, Jan 8, 2013 at 7:22 AM, Alexandra Shulman-Peleg >>>>>
> <SHULMANA at il.ibm.com> wrote:
> >>>>>>
> >>>>>> Hi,
> >>>>>>
> >>>>>> As most of you know, Keystone v3 API will introduce the
> notions of >>>>>> "domains" and "projects" which will replace the
> existing notion of tenants.
> >>>>>> It is important to allow using the same concepts in Swift.
> Since different >>>>>> domains may represent different companies, it
> is important to allow >>>>>> reflecting the Keystone "domain name" in
> the Swift "account name", providing >>>>>> an option to isolate the
> requests of different domains. Are there existing >>>>>> plans of
> adjusting Swift to Keystone v3 API? If not, I would like to start
> >>>>>> discussing the potential solutions.
> >>>>>>
> >>>>>> Thank you all,
> >>>>>> Alex.
> >>>>>>
> >>>>>>
> >>>>>> ----------------------------------------------------------
> >>>>>> Alexandra Shulman-Peleg, PhD
> >>>>>> Storage Research, Cloud Platforms Dept.
> >>>>>> IBM Haifa Research Lab
> >>>>>> Tel: +972-3-7689530 | Fax: +972-3-7689545 >>>>>> >>>>>>
> >>>>>> _______________________________________________
> >>>>>> OpenStack-dev mailing list
> >>>>>> OpenStack-dev at lists.openstack.org >>>>>>
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> >>>>>>
> >>>>>
> >>>>>
> >>>>> _______________________________________________
> >>>>> OpenStack-dev mailing list
> >>>>> OpenStack-dev at lists.openstack.org >>>>>
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> >>>>>
> >>>>
> >>>> _______________________________________________
> >>>> OpenStack-dev mailing list
> >>>> OpenStack-dev at lists.openstack.org >>>>
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> >>>
> >>>
> >>> _______________________________________________
> >>> OpenStack-dev mailing list
> >>> OpenStack-dev at lists.openstack.org >>>
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> >>
> >> _______________________________________________
> >> OpenStack-dev mailing list
> >> OpenStack-dev at lists.openstack.org
> >> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> >>
> >
> >
> > _______________________________________________
> > OpenStack-dev mailing list
> > OpenStack-dev at lists.openstack.org
> > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
>
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
_______________________________________________
OpenStack-dev mailing list
OpenStack-dev at lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
More information about the OpenStack-dev
mailing list