keystone的概念:
keystone是openstack的组件之一,用于为openstack家族中的其他组件成员统一的认证服务,包括:身份认证、令牌的发放与校验、服务列表、用户权限定义等。
基本概念:
User:用户 -身份认证,一个用户可以关联到多个租户
Tenant(租户)-相当于用户组的概念,一个租户可以包括多个用户
role(角色)-关联到“用户-租户对”的元数据。可以关联到多个“用户-租户对”
Token(令牌)-用于验证用户或者“用户-租户对"的请求是否合法。
service(服务)-服务类型和名称。
Endpoint(端点)-某个服务的URL。
keystone在openstack的地位:
用户-角色-服务交互图
keystone的架构图:
token:用于生成和管理Token。
Catalog:用来存储和管理service和endpoint。
identity:用来管理租户、用户、角色和验证。
policy:用来管理访问权限。(不是很理解)
keystone的验证流程:
创建虚拟机的过程:
keystone的工作流程:
解释:
1.alice向keystone发送用户名和密码,验证通过后,keystone会返回一个临时的令牌,和一个service的catalog。
2.alice提供这个临时的token,用keystone请求她所属的所有的租户列表。
3.alice从租户列表中选出tenant,再次向keystone发送请求,验证通过后返回该租户的Service Catalog和Token。
4.alice向nova-api发送创建vm请求,nova向keystone验证,Token是否合法?这个租户-用户是否有权向nova请求服务?
5.keystone返回验证信息,a:租户-用户alice有权访问nova服务;b:这个toaken合法;c:这个token属于租户-用户alice
6.nova根据自己的规则,判断用户是否具有创建虚拟机的权限。若有,就开启虚机,并将状态返回给用户alice。