[openstack-dev] Remove tenant/project ID from Nova v3 API URLs

Vishvananda Ishaya vishvananda at gmail.com
Tue May 14 18:16:45 UTC 2013


Can't we solve this by putting a attribute on the resource itself ("owner")? After all the project_id is really just an attribute on the resource. The policy could then be crafted via attribute matching instead of uri matching.

I don't see any reason to make the "owner" attribute special vs other attributes like state (policy could allow showing of "soft-deleted" vms) or flavor (policy could allow hiding some flavors). Including it in the uri or as a header seems like we are arbitrarily choosing one attribute of the resource and making it extra important. I don't really think that is justified.

Vish

On May 14, 2013, at 1:33 AM, Jorge Williams <jorge.williams at rackspace.com> wrote:

> Need access to the project_id outside of the nova source and available via REST somehow. I also need a way of accessing the data from other OpenStack APIs for resources outside of nova.
> 
> Here's the reason why:  Keystone v3 has the concept of polices in arbitrary languages such as XACML. XACML implementations are essentially attribute based access control systems. Usually there is a Policy Enforcement Point (PEP) which is a separate application that intercepts requests to a service and together with a Policy Decision Point (PDP) grants access to a request by taking a look at attributes of the user, the request itself, the resource, or the environment (current-time etc.).
> 
> Currently the project_id of the resource is an attribute of the request, because it is in the URI.  If you remove it from the URI I lose access to it  all together and that means I can't write polices which refer to the project_id of the resource.  I think that's a big deal.
> 
> The default built in policy that says that the project_id that the token is scoped must match the project_id of the resource works fine for most deployments, but operators should be able to define their own polices.
> 
> -jOrGe W.



More information about the OpenStack-dev mailing list