Florian - Would love to have some docs patches!
-joe On Mar 23, 2012, at 6:04 AM, Florian Daniel Otel wrote: > Thanks Jay for the in-depth explanation, it actually does make sense :) > > Sorry for the late reply -- I had to to change my Keystone, Swift and Glance > setup and digest the changes. Still not completely out of the woods yet.... > > Thanks Chmouel for the the patch [1] for the Glance and Swift config files. > It's pretty much what I had in mind as well. However, shouldn't > "keystone.conf" itself be changed accordingly ? I can take a stab at it and > submit a proposal if it helps... > > Also, wrt to the docs [2]. AFAICT the patch covers only > "doc/sources/configuringservices.rst" , but it needs fixing in other places > too (e.g. "doc/sources/middleware_architecture.rst"). Same thing there -- I > can try to make a patch and submit it (I need to get the hang of it first...) > > Regards, > > Florian > > [1] > https://github.com/openstack-dev/devstack/commit/bd07d61c4545c52d39b9c957ff9e4423525ca452 > [2] https://review.openstack.org/#change,5190 > > > > On Tue, Mar 20, 2012 at 10:09 PM, Jay Pipes <jaypi...@gmail.com> wrote: > Hi Florian, I appreciate your post and sympathize with your > frustration/confusion. I'll do my best below to help un-confuse :) > > > On 03/20/2012 12:15 PM, Florian Daniel Otel wrote: > Hello all, > > I need some help with inconsistencies and -- in my mind -- confusing > instructions wrt "auth_token" Keytone middleware. > > So far I have Keystone and Swift w/ Keystone auth working well together > (ussing Essex-4 milestone release of Keystone resp v1.4.6 of Swift). > > What I am now trying is to get Glance on Swift with Keystone Auth but > I'm faced with conflicting info that I cannot make sense of > > 1) Naming inconsistencies -- "token_auth" , "tokenauth" (Keystone resp > Swift) vs "authtoken" (Glance) > > The existing Keystone and Swift docs (e.g. this one: > http://keystone.openstack.org/configuringservices.html#configuring-swift-to-use-keystone*) > *use as names "token_auth" (Keystone) resp "tokenauth" (Swift) wheareas > > in Glance docs the same midldleware (i.e. > "keystone/middleware/auh_token.py") is referred to as "authtoken" (see > e.g. here http://glance.openstack.org/authentication.html ) > > While this may be only pedantic IMHO it would help if things would be > called the same way in different places. Or, if I'm confusing things, > someone point me out the differences to which is what and why. > > Completely agreed, and Chmouel has submitted two patches to address these > inconsistencies. > > > 2) "auth_token": Persistent tokens or user/pass ? > > As per Jay Pipes comment here: > https://bugs.launchpad.net/glance/+bug/953989/comments/2 (from > 2012-03-13) the concept of long-lived (i.e. persistent) tokens are no > longer supported by the Keystone "auth_token" middleware -- and that is > listed as why that bug was invalid. > > Actually, no not quite. The bug was marked Invalid because the source of the > issue was three things that Kevin (the bug reporter) had failed to do in his > setup -- two of which had to do with the authentication and one having to do > with an incorrect endpoint template placeholder. > > Anyway, let me try and explain what the deal is with the "long-lived token > deprecation" that is mentioned in the bug report. > > Previously in Keystone there was the concept of a "service token" -- > otherwise known as a long-lived token. These special tokens would be read > from a configuration file or paste-ini file by the auth_token middleware that > sat, for instance, in the Glance API server pipeline. Importantly, these > special tokens were **not required to be attached to any user or tenant**. > > The auth_token middleware is responsible for authenticating -- via Keystone > -- incoming regular user requests on an API endpoint. For example, if I call > GET http://example.com:9292/v1/images to get a list of images from a Glance > API server, and that server was configured with the auth_token middleware, > then the middleware looks for certain HTTP headers in the incoming request. > > If the HTTP_X_AUTH_TOKEN header is present in the incoming request, > then the middleware would need to *validate* this authentication token with > Keystone. This validation call (POST /v2.0/tokens/{$token_id} [1]) is a > *privileged* call in the Keystone Service Admin API, and as such, in order to > make the validation request, the HTTP request to Keystone itself needs, > itself, to supply an HTTP_X_AUTH_TOKEN that is "scoped" to some entity that > can make this privileged validation call. However, as mentioned before, the > long-lived "service token" was not scoped to any user/tenant, and these > "unscoped" tokens were accepted by the validate token API call as privileged > tokens... > > OK, so recent changes removed this inconsistency in the scoping of tokens. > There are no longer any tokens that are unscoped, and because of this, it was > found to be more logical to have a user and password combination in > middleware configuration files instead of a token. So, whereas you used to be > able to just do: > > [filter:authtoken] > ... > admin_token = 998877665544 > > And have a long-lived "service token" with ID "998877665544" added to > Keystone, you are no longer able to add an unscoped token. Instead, you don't > add tokens manually at all. Instead, there are privileged user accounts that > are in a service tenant, and these service user accounts are scoped to a set > of privileged roles that enable the account to call privileged API calls such > as POST /v2.0/tokens/{$token} in the Keystone Service Admin API. > > So, now the middleware configuration looks like this: > > [filter:authtoken] > ... > service_user = glance > service_password = <SERVICE_PASSWORD> > > And the auth_token middleware itself actually uses the user/password > combination to retrieve a privileged token that the middleware stores in > memory and uses when calling the token validation API calls. > > Hope this long explanation makes things a bit more clear and hasn't further > muddied the waters. > > Best, > -jay > > [1] > http://docs.openstack.org/api/openstack-identity-service/2.0/content/GET_validateToken_v2.0_tokens__tokenId__Admin_API_Service_Developer_Operations-d1e1356.html > > > _______________________________________________ > Mailing list: https://launchpad.net/~openstack > Post to : openstack@lists.launchpad.net > Unsubscribe : https://launchpad.net/~openstack > More help : https://help.launchpad.net/ListHelp > > _______________________________________________ > Mailing list: https://launchpad.net/~openstack > Post to : openstack@lists.launchpad.net > Unsubscribe : https://launchpad.net/~openstack > More help : https://help.launchpad.net/ListHelp
_______________________________________________ Mailing list: https://launchpad.net/~openstack Post to : openstack@lists.launchpad.net Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp