[openstack-dev] Specifying Tenant-ID in Openstack REST API URLs and Quatum 2.0 APIs
Doug Davis
dug at us.ibm.com
Fri Nov 2 12:59:14 UTC 2012
+1 I think URLs w/o tenant IDs are a cleaner design.
thanks
-Doug
________________________________________________________
STSM | Standards Architect | IBM Software Group
(919) 254-6905 | IBM 444-6905 | dug at us.ibm.com
The more I'm around some people, the more I like my dog.
From: Eugene Nikanorov <enikanorov at mirantis.com>
To: OpenStack Development Mailing List
<openstack-dev at lists.openstack.org>,
Date: 11/02/2012 02:13 AM
Subject: Re: [openstack-dev] Specifying Tenant-ID in Openstack REST API
URLs and Quatum 2.0 APIs
Folks,
Let me add my 2c to this discussion.
Objects in Quantum could be identified by their Id, so why specify
tenant_id+object_id in URL when object_id is sufficient?
If we're talking about authorization then keystone middleware adds header
with tenant_id allowing to make authorization decision.
If we're talking about cross tenant access, e.g. when one tenant accesses
resource created by another, that implies that there is:
- API for creating/listing such shared resources
- each resource could still be accessed by ID
- resource is marked as shared so Quantum will authorize any tenant to
access it
So actually there is no direct need in tenant_id in URL.
Thanks,
Eugene.
On Fri, Nov 2, 2012 at 2:30 AM, Dan Wendlandt <dan at nicira.com> wrote:
This is now ancient (in openstack time) history, but Quantum removed the
tenant-id from the URL when moving from v1 to v2 of the API because
someone (I forget who) had said that other OpenStack services already
where (and/or were planning) doing the same. Unfortunately, as is
somewhat often the case, it seems like that sentiment may not have been
quite as universal as I was led to believe :)
Dan
On Thu, Nov 1, 2012 at 12:53 PM, Mellquist, Peter <peter.mellquist at hp.com
> wrote:
Thanks Joe.
I was not involved in the creation of the Quantum 2.0 APIs so I cannot
say for sure why the difference in tenant-id handling was made. As part
of a new Quantum sub-project LBaaS, we came across this difference and
my reason for the posting was to gauge how everyone feels about this
difference from a consistency perspective across all OS APIs. Ideally I
would like to see a common API pattern for handling this, if that makes
sense. Keystone integration is a big part of how tenants are specified
including the ability for cross tenant access so your input is very
valuable here.
Peter.
From: heckj [mailto:heckj at mac.com]
Sent: Thursday, November 01, 2012 12:29 PM
To: OpenStack Development Mailing List
Subject: Re: [openstack-dev] Specifying Tenant-ID in Openstack REST API
URLs and Quatum 2.0 APIs
Hey Peter,
I'm not sure that's an entirely safe assumption. Although that's totally
what we're doing today, and in most implementations the authorization is
scoped to a single tenant, there's a request outstanding to allow a
token to be applicable to more than one tenant, which would leave this
kind of request in a very indeterminate status if you're relying on
Keystone.
I'm not terribly in favor of having a token scoped so widely - but it's
technically possible to have a token that's scoped more broadly with the
V2 API. V3 was attempting to lock that down to mandate a bit of
interoperability, but so far there's a far bit of push back on wanting
that open.
Needless to say, your feedback on that topic would be nice as it related
to the Quantum 2.0 API.
For this specific purpose, I would encourage the API to require a
specific tenant_id - either in the URL, or as part of the posted query
parameter elements if it's tied to the resource in question (i.e CRUD
operations that are specific to a tenant)
-joe
On Nov 1, 2012, at 12:15 PM, "Mellquist, Peter" <peter.mellquist at hp.com>
wrote:
The majority of the existing Openstack APIs allow specifying the
tenant_id as part of the REST resource URL where resources are
structured around tenants. For example within nova APIs, these
API calls are prefixed with /v2/{tenant_id} / ...
www.api.openstack.org
Quantum API 2.0 specifies a new way for APIs to reference tenant
based resources. As part of the transition from the Quantum API
1.0 to 2.0 , the tenant_id as part of the resource URL has been
dropped and instead the requested resource is assumed to be the
Keystone derived tenant_id. This shortens the Quantum API 2.0
calls to exclude {tenant_id} as part of the URL. For example, for
LBaaS with Quantum 2.0 we would just have
/v1.0/…
For cross tenant access, when roles allow so, Quantum 2.0 allows
specifying tenant_id as a query parameter, ‘? tenant_id=XXX.’
Does the Quantum 2.0 API work in terms of handling multi-tenant
resource access? YES
Is the Quantum 2.0 API consistent with existing Openstack APIs in
regard to tenant resource access? NO
Openstack API Community Questions:
Does consistency across Openstack APIs in regard to tenant based
resource access matter?
Does this impact developers, direct REST usage or those using
language bindings / libraries?
Thank You,
Peter Mellquist
Hewlett Packard Company
_______________________________________________
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
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dan Wendlandt
Nicira, Inc: www.nicira.com
twitter: danwendlandt
~~~~~~~~~~~~~~~~~~~~~~~~~~~
_______________________________________________
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20121102/60c99da8/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: graycol.gif
Type: image/gif
Size: 105 bytes
Desc: not available
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20121102/60c99da8/attachment.gif>
More information about the OpenStack-dev
mailing list