[openstack-dev] [Keystone] Federated design from Kent
Adam Young
ayoung at redhat.com
Wed Aug 22 01:46:47 UTC 2012
David,
I went through the docs you posted on dropbox in a bit more detail. I
really appreciate the amount of effort that went into this design so
far. I have a few questions about how your current design aligns with
some of the assumptions that Openstack is built on. These assumptions
may not be explicit anywhere, so pulling them out into the open here
might be the best starting point. I might not be the best person to do
that, but I can get the conversation rolling.
The part of your document that I am most excited about is how it is
designed to work with multiple authentication mechanisms. I personally
have been thinking more along the lines of PKI and Kerberos, and I think
that your document supports SAML and numerous other mechanisms provides
a smart and logical extension to Keystone's authentication story.
I suspect that the most controversial aspect you have written up is " If
the permitted tenants are not in keystone they will be created and
linked to the user." Thus far, tenant creation is an explicit action,
and often one that is done in conjunction with an exchange of funds, or
at least the intialization of a contract with the end user to be billed
later. On demand tenant creation would ariull need to tie in with such
and accounting system. I understand that different implementations have
different requirements. Would it be correct to say that this is
something that should be a policy decision on the part of the
implementation? Is there anything in your design which would require
on-demand tenant creation?
You mention the client library. I think that we want to go the other
way: straight REST implementation. While it is true that the CLI has a
lot of power, what we have found is that a huge number of
implementations are using the Web APIs as the primary access to
Openstack, and they need to be the first class citizen. Anything we
build needs to work first and formost with curl. Would that requirement
impact your design? How hard would it be for a third party to implement
the handshakes that you describe between getting the endpoint list etc?
For example, on the client connection API: getScopedToken and
getUnscopedToken are already implemented in the REST API. creating a
specific Library to call that seems to work against the REST approach.
I'd much rather see the set of URLs and actions specified IAW the way
that the V3 API has been described.
There has been a Blueprint for Domains published for some time. It took
a lot of work to get consensus on it. http://wiki.openstack.org/Domains
They seem to be the analogue of Realms as you've specified. The APIs
for them are in the V3 API document. We had hoped to get that in to Folsom.
The user guide states "The user logs into the IdP via his browser."
While Horizon is a browser based app, we expect far more integration
with non-browser use. Is your implementation expecting to be
predominantly driven from the browser? Does it matter?
The discovery service finds the endpoint for the Realm. This means that
a call to Keystone has to kick the whole thing off. How often is that
discovery service used, and by whom? Is that for every time a new
authentication is performed, or is it something that is done once and
cached?
It would be really useful if you could post the documents in a format in
which we could link to individual lines or at least sections. I
personally don't care for Google docs, and am fine with the Wiki. But
to be honest, a text version of your documents checked in to Github
would be sufficient. I think that format is really secondary to content
at this point. It will greatly facilitate the discussion.
Again, thanks to you and your team for moving this topic along. I see
it as the next big step for Keystone, and I think I speak for all of us
when I say "lets get it right."
Adam
More information about the OpenStack-dev
mailing list