[openstack-dev] [keystone] design summit outcomes

Adam Young ayoung at redhat.com
Thu Nov 14 18:16:42 UTC 2013


On 11/14/2013 10:03 AM, Steven Hardy wrote:
> On Wed, Nov 13, 2013 at 10:04:04AM -0600, Dolph Mathews wrote:
>> I guarantee there's a few things I'm forgetting, but this is my collection
>> of things we discussed at the summit and determined to be good things to
>> pursue during the icehouse timeframe. The contents represent a high level
>> mix of etherpad conclusions and hallway meetings.
>>
>> https://gist.github.com/dolph/7366031
> Looks good, but I have some feedback on items which were discussed (either
> in the delegation session or in the hallway with ayoung/jlennox), and are
> high priority for Heat, I don't see these captured in the page above:
>
> Delegation:
> - Need a way to create a secret derived from a trust (natively, not via
>    ec2tokens extension), and it needs to be configurable such that it
>    won't expire, or has a very long expiry time. ayoung mentioned a
>    credential mechanism, but I'm not sure which BP he was referring to, so
>    clarification appreciated.
I am not sure this is pointing the right direction.  Trusts assume 
authentication from an separate source, like the token the trustee 
passes in when executing the trust.  Long term credentials should be 
used in conjunction with a trust, but separate to it.  I suspect that 
there is something that could be done with X509, Trusts, and Token 
Binding that would make sense here.

Something like:

1.  Identify client machine
2.  Generate new Cert for Client machice (Key stays on client, gets 
signed by CA)
3.  Generate trust, and link trust to new cert.
4.  Client machine uses cert and trust to get tokens.




>
> Client:
> - We need a way to get the role-tenant pairs (not just the tenant-less
>    role list) into the request context, so we can correctly scope API
>    requests.  I raised this bug:
A token is scoped to something;  project, domain, whatever. Providing 
tokens that are scoped wider is somewhat suspect.  What you want to do 
is to query the data from Keystone using an unscoped token.  But any 
token from a user sent back to Keystone (except a trust token) should be 
able to access this information.

Put another way: you need to query the role information for additional 
requests to Keystone.  A token is specifically for proving that you have 
access to the information to a third party. Since anything that is going 
to be done with this information is going to be validated by Keystone,  
it is OK to do it as a query against Keystone itself.

So, I think what you want is a way to query all roles for a user on all 
projects in all domains.  This can be done taody doing individual calls 
(enumerate domains, enumerat projects)  which is chatty.  If it proves 
to be a performance bottleneck, we can optimize it into a single call.

>
>    https://bugs.launchpad.net/python-keystoneclient/+bug/1250982
>
>    Related to this thread (reminder - which you said you'd respond to ;):
>
>    http://lists.openstack.org/pipermail/openstack-dev/2013-November/018201.html
>
>    This topic came up again today related to tenant-scoped nova flavors:
>
>    http://lists.openstack.org/pipermail/openstack-dev/2013-November/019099.html
>
>    Closely related to this bug I think:
>
>    https://bugs.launchpad.net/keystone/+bug/968696
>
>    I'd welcome discussion on how we solve the request-scoping issue
>    openstack-wide, currently I'm thinking we need the role-tenant pairs (and
>    probably role-domain pairs) in the request context, so we can correctly
>    filter in the model_query when querying the DB while servicing the
>    API request.
>
> Thanks,
>
> Steve
>
> _______________________________________________
> 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