I think the exchange unscoped to scoped is not working for me, I think the
issue may come from

GET :  *http://192.168.1.48:5001/v2.0/tenants*

---START TEST---


POST : *http://192.168.1.48:5001/v2.0/tokens*

{"auth":{"passwordCredentials":{"username":"admin","password":"secrete"}}}

RES :

{"access": {"token": {"expires": "2011-09-27T15:16:31.015850", "id":
"8b523cbc-4805-49f5-bfd2-520e67f3bd81",* "tenant": {"id": "1", "name":
"admin"}}*, "serviceCatalog": [{"endpoints": [{"adminURL": "
http://192.168.1.48:5001/v2.0";, "region": "RegionOne", "internalURL": "
http://192.168.1.48:5000/v2.0";, "publicURL": "http://192.168.1.48:5000/v2.0"}],
"type": "identity-service", "name": "keystone"}], "user": {"id": "2",
"roles": [{"id": "1", "name": "Admin"}], "name": "admin"}}}

GET :  *http://192.168.1.48:5001/v2.0/tenants*

RES:

{"tenants": {"values": [{"enabled": true, "description": "None", "name":
"demo", "id": "2"}, {"enabled": true, "description": "None", "name":
"admin", "id": "1"}], "links": []}}

If I select the admin tenant the exchange works fine:

POST : *http://192.168.1.48:5001/v2.0/tokens*

{"auth":{"tokenId":"8b523cbc-4805-49f5-bfd2-520e67f3bd81","tenantId":1}}

RES:

{"access": {"token": {"expires": "2011-09-27T15:16:31.015850", "id":
"8b523cbc-4805-49f5-bfd2-520e67f3bd81", "tenant": {"id": "1", "name":
"admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "
http://192.168.1.48:5001/v2.0";, "region": "RegionOne", "internalURL": "
http://192.168.1.48:5000/v2.0";, "publicURL": "http://192.168.1.48:5000/v2.0"}],
"type": "identity-service", "name": "keystone"}], "user": {"id": "2",
"roles": [{"id": "1", "name": "Admin"}], "name": "admin"}}}

POST :* http://192.168.1.48:5001/v2.0/tokens*

{"auth":{"tokenId":"8b523cbc-4805-49f5-bfd2-520e67f3bd81","tenantId":2}}

RES :

{"unauthorized": {"message": "Unauthorized on this tenant", "code": "401"}}


---END TEST---

BTW, I can't add more than one user to a tenant using the REST API (any
clue?)

2011/9/26 Rafael Durán Castañeda <[email protected]>

> Hi,
>
> Looking at your posts 
> openstack/keystone<https://github.com/openstack/keystone>at GitHub seems to 
> be the recommended version for Diablo, however Launchpad
> points to this version <https://launchpad.net/keystone/diablo>, so I'm a
> bit confused about which is the Diablo version for Keystone. Any hint about
> this?
>
> Bye.
>
>
> 2011/9/21 Dolph Mathews <[email protected]>
>
>> **
>> I believe this review satisfies the remaining requirements that keystone
>> was lacking:
>>
>> https://review.openstack.org/#change,516
>>
>> See the new functional test in keystone/test/functional/test_auth.py:
>> test_user_auth_with_role_on_tenant(), which illustrates the flow you
>> outlined.
>>
>> At the moment, the only issue preventing a merge appears to be that the
>> LDAP-backend implementation is failing to return GET /tenants properly. Any
>> help here would be appreciated, as I'm sure someone else is more familiar
>> with LDAP than I.
>>
>> -Dolph
>>
>>
>> On 09/21/2011 03:16 AM, Jesse Andrews wrote:
>>
>> As part of the release meeting today we talked about getting a preview 
>> release of keystone + dash + diablo working asap.  This is an attempt to 
>> summarize the major interfaces.  Ziad and team have an identity guide (they 
>> are updating and can share asap) to help flush this out.
>>
>> Here is what I see needs implemented to make Dash + Nova + Keystone work 
>> together.  This is a subset of the auth spec (what Ziad & team are working 
>> to support Diablo as these are the contracts between those services)
>>
>> 1. CREATE TOKEN: (enduser api)        POST /v2.0/tokens
>>     post data: 
>> https://github.com/openstack/keystone/blob/master/keystone/content/common/samples/auth_credentials.json
>>     response: 
>> https://github.com/openstack/keystone/blob/master/keystone/content/common/samples/auth.json
>>
>> 2. VALIDATE TOKEN: (admin api)         GET 
>> /v2.0/tokens/(token)?[belongs_to=(tenant_id)]
>>     response: 
>> https://github.com/openstack/keystone/blob/master/keystone/content/common/samples/validatetoken.json
>>
>> 3. TENANTS FOR TOKEN: (user api)    GET /v2.0/tenants
>>      returns: 
>> https://github.com/openstack/identity-api/blob/master/openstack-identity-api/src/docbkx/samples/tenants.json
>>
>> These 3 APIs are the meat of the keystone auth api (disregarding CRUD 
>> operations for users/tenants)
>>
>> Flow:
>>
>> * user visits a web console to login to openstack
>> * dashboard uses keystone to authenticate (dashboard has no internal user 
>> system, and shouldn't store username/password in session/shared state)
>> * since there can be a many to many relationship between users and tenants, 
>> the user might need to specify the tenant they want to operate on before 
>> talking with services like nova/glance/...
>> * A service like NOVA need to validate (via http proxy or middleware) the 
>> token and return a USER, TENANT (previously known as a project in nova), and 
>> a list of roles.
>>
>> Notes:
>>
>> * a tenant is a "project" in nova and an "account" in swift.  Think of it as 
>> the entity that "owns" the resources.
>> * a user is the acting entity.
>> * while keystone implements many-to-many tenant/user support, services 
>> should support many-to-many, one-to-many, one-to-one - as the API makes no 
>> assumptions about the hierarchical nature of the users/tenants
>> * when getting the response to the "create unscoped token", I write that it 
>> returns "stuff".  While it technically returns the roles, serviceCatalog, 
>> userinfo (same structure as for the scoped token), it isn't guaranteed to be 
>> the complete list of roles/endpoints for every tenant the user is a member 
>> of.
>> * since the goal of the dashboard is to toggle visibility/functionality 
>> based on capabilities presented in the service catalog, we ask for a scoped 
>> token that has the capabilities for the tenant / user pair.
>> * I use nova as my example but the approach is generalized.
>> * crud operations for users/tenants exists both in "keystone-manage" and api 
>> calls.  While dashboard has had user management capabilities in the past, we 
>> might rely on command line user management for the first release of the 
>> preview.
>> * mistakes in this summary are mine (please correct me)…  up until a few 
>> hours ago I had assumed the relationship betweens tenants/users and tokens 
>> was subtly different.
>>
>>
>>
>>
>>
>>
>>
>>
>> ps. The swimlane (sequence diagram) was generated with sdedit (sourceforge) 
>> and is attached for patches :)
>>
>>
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~openstack
>> Post to     : [email protected]
>> Unsubscribe : https://launchpad.net/~openstack
>> More help   : https://help.launchpad.net/ListHelp
>>
>>  This email may include confidential information. If you received it in
>> error, please delete it.
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~openstack
>> Post to     : [email protected]
>> Unsubscribe : https://launchpad.net/~openstack
>> More help   : https://help.launchpad.net/ListHelp
>>
>>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to     : [email protected]
> Unsubscribe : https://launchpad.net/~openstack
> More help   : https://help.launchpad.net/ListHelp
>
>
_______________________________________________
Mailing list: https://launchpad.net/~openstack
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp

Reply via email to