[openstack-dev] A set of Keystone blueprints relating to domains
David Chadwick
d.w.chadwick at kent.ac.uk
Thu Nov 22 13:00:56 UTC 2012
Hi Henry
On 21/11/2012 19:59, Henry Nash wrote:
> Hi
>
> I have been working, with others, on a set of blueprints (some already
> discussed on this list) that enhance the definition and use of domains
> to make Openstack more successful and acceptable to enterprise customers
> (both when being hosted by a openstack-based cloud provider as well as
> for private clouds). I would welcome comments/suggestions:
>
> *Optional private name spaces for domains*. The initial draft of this
> proposal has been discussed here before, but I have now added details of
> the proposed changes :
> https://blueprints.launchpad.net/keystone/+spec/domain-name-spaces
I fully support your spec for domain-name-spaces from a conceptual
perspective. It makes eminent sense. Concerning the implementation
details, I am more agnostic. Have you considered for example, that
usernames, projects etc. that have private names, could be simply
converted into global names by prefixing them (or suffixing them) with
the global domain name, without creating an extra "domain_name"
parameter on the APIs. Would that work? Eduroam for example uses a
similar scheme, by allowing local usernames to be used for
authentication when you are logging in to the local site/domain, but you
must use username at dns.name when logging in to a remote site (where
dns.name is the DNS name of your domain).
>
> *Token scoping to a domain*. More easily enabling the operation of
> domain-wide admin roles:
> https://blueprints.launchpad.net/keystone/+spec/domain-scoping
No comments on this spec for now
>
> *Domain role assignment.* Providing more flexibility in terms of what
> the current functionality means to assign a role to a user-domain pair:
> https://blueprints.launchpad.net/keystone/+spec/domain-role-assignment
I would like to open up this whole discussion to "how is RBAC or ABAC to
be used in general" ie. how are roles to be assigned, how are
permissions to be granted etc. It seems that you are only addressing one
small aspect of a much larger discussion in your current document.
One could consider for example that roles can have global or local
names, just like usernames and projects can have in your first blueprint
above. What follows from this would be
i) if a role has a globally unique name it can potentially give
privileged access to all resources in all domains on all clouds (rather
like the dollar gives me access to resources all over the world)
ii) if a role has a local name then it can only give privileged access
to resources that are within the same name space as itself.
iii) a local role can be converted into a global role by prefixing it
with the name of its name space
Another issue to consider is, why are users restricted to only accessing
resources within their own tenant? This is a needless restriction, and
will cause us problems when we come to delegation of authority. A user
with a globally unique role should potentially have access to all
resources in all tenants (subject to the policy of the cloud service
provider).
Perhaps if we try to take a more global look at the current RBAC
mechanism we can specify a less restrictive, conceptually simpler, ABAC
scheme that is a superset of the current restrictive RBAC scheme. And
then try to migrate towards this
regards
David
>
> Henry
>
>
> _______________________________________________
> 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