概念
User
拥有用户名, 密码, 邮箱等帐号信息的自然人.
代表可以通过 keystone 进行访问的人或程序, 比如 nova 用户访问 glance 服务. Users 通过认证信息进行验证
$ keystone user-create --name=alice --pass=mypassword123 --mail=alice@example.com
Tenant
是一个项目, 团队或组织. 必须指定一个相应的租户(tenant)才可以申请 OpenStack
是一个容器, 用于组织和隔离资源, 或标识对象, 依赖于服务操作, 比如在 Nova 中一个 tenant 可以是一些机器.
$ keystone tenant-create --name=acme
Role
一个角色代表用户在一个给定的租户能被允许执行的操作, 可以理解租户为那些使用 你云环境的客户, 这些客户可以是一个项目组, 工作组, 公司, 这些客户中会建立不 同的帐号(用户)及其对应的权限(角色).
Service
服务, 如 Nova, Glance, Swift. 一个服务可以确认当前用户是否具有访问其 资源的权限. 服务通过可能获取资源或执行操作的用户提供给一个或多个末端
Endpoint
代表了 OpenStack 服务的 API 接口
test
2、业务API 测试: 获取版本号: curl http://0.0.0.0:5000/ | python -mjson.tool curl http://0.0.0.0:5000/v2.0/ | python -mjson.tool
获取api扩展: curl http://0.0.0.0:5000/v2.0/extensions | python -mjson.tool
用普通用户登录: curl -X POST -d ‘{“auth”: {“passwordCredentials”:{“username”: “admin”, “password”: “hastexo”}}}’ -H “Content-type: application/json” http://0.0.0.0:5000/v2.0/tokens | python -mjson.tool
查看自己的租户 curl -H “X-Auth-Token:7cda7d62d7b84831bbb9ba1ef43efc62” http://0.0.0.0:5000/v2.0/tenants | python -mjson.tool
3、管理API测试:
获取版本号: curl http://0.0.0.0:35357/ | python -mjson.tool curl http://0.0.0.0:35357/v2.0/ | python -mjson.tool
获取api扩展: curl http://0.0.0.0:35357/v2.0/extensions | python -mjson.tool
用角色 admin 登录: curl -X POST -d ‘{“auth”: {“tenantId”: “0ca7f3c6ddee4a1f97f20f4301162cc0”, “passwordCredentials”:{“username”: “admin”, “password”: “hastexo”}}}’ -H “Content-type: application/json” http://0.0.0.0:35357/v2.0/tokens | python -mjson.tool
校验 token 的有效,并返回token的信息: curl -H “X-Auth-Token: 83c9a7a01c274e7da0e97d3aac548ca3” http://0.0.0.0:35357/v2.0/tokens/83c9a7a01c274e7da0e97d3aac548ca3 |python -mjson.tool
使用 HEAD校验,如果返回码是 20X, 表示 token 有效: curl -I -H “X-Auth-Token: 83c9a7a01c274e7da0e97d3aac548ca3” http://0.0.0.0:35357/v2.0/tokens/83c9a7a01c274e7da0e97d3aac548ca3
这个api不对: curl -H “X-Auth-Token:5a10b008add4435f8473d2b11d3ba8a8″ http://0.0.0.0:35357/v2.0/tokens/5a10b008add4435f8473d2b11d3ba8a8/endpoints
返回租户: curl -H “X-Auth-Token:83c9a7a01c274e7da0e97d3aac548ca3” http://0.0.0.0:35357/v2.0/tenants%7Cpython -mjson.tool
返回某个租户: curl -H “X-Auth-Token:5a10b008add4435f8473d2b11d3ba8a8″ http://0.0.0.0:35357/v2.0/tenants/6a524dbe23dd4e4ab672cd163c85a27d |python -mjson.tool
返回用户: curl -H “X-Auth-Token:5a10b008add4435f8473d2b11d3ba8a8″ http://0.0.0.0:35357/v2.0/users%7Cpython -mjson.tool
返回某个用户: curl -H “X-Auth-Token:5a10b008add4435f8473d2b11d3ba8a8″ http://0.0.0.0:35357/v2.0/users/3ff8fbca9794436c996d8c6e41427530%7Cpython -mjson.tool
返回某个租户上,用户授予的角色: curl -H “X-Auth-Token:5a10b008add4435f8473d2b11d3ba8a8″ http://0.0.0.0:35357/v2.0/tenants/6a524dbe23dd4e4ab672cd163c85a27d/users/3ff8fbca9794436c996d8c6e41427530/roles |python -mjson.tool
返回某个用户的角色:(出错,没有实现,参见 https://bugs.launchpad.net/keystone/+bug/933565) curl -H “X-Auth-Token:5a10b008add4435f8473d2b11d3ba8a8″ http://0.0.0.0:35357/v2.0/users/3ff8fbca9794436c996d8c6e41427530/roles