立志把F、G、H版本的keystone工作原理及区别都整理一下,网上分析keystone核心对象及其意义的文章已经很多了,我就不赘述了。
核心对象列表
user:一个使用openstack云服务的人、系统或者服务。
project:租户,一个人或者组织,直接和虚拟机、卷等资源关联。
role:用户角色,和policy配合使用。
token:一个通过keystone验证的用户标识,它的范围与user+project或者user+domain关联,根据获取的token的方式来区分。
service:compute,image,identity,volume,network。
endpoint:service的网络接入地址,具有region属性。
domain:类似命名空间,解决v2 API用户名和租户名只能全局唯一的问题。
group:用户的集合,便于给用户整体授予和取消权限
policy:对于服务的操作规则,和角色相关,可以定义哪个角色可以进行哪些操作(v3版本只增加了crud操作,没有逻辑实现替代policy.json的功能)
trust:一个用户可以通过trust将自己的role和个人信息转交给另一个用户使用
先看下keystoneClient吧!
获得token的请求:curl -i http://localhost:5000/v2.0/tokens -X POST -H "Content-Type: application/json" -H "User-Agent: python-keystoneclient"
响应结果:
{ "access": { "token": { "expires": "2013-08-06T08:14:29Z", "id": "636bb1fd4f5b4ec1b9f1be668a9a7e75",