分享

keystone验证流程

user:使用openstack资源的用户
credential用户凭据:用来证明用户身份;可以是用户名和密码、或者一个keystone分配的token
authentication身份验证:验证用户身份的过程;keystone服务通过检查用户的credential来确认用户的身份。
token令牌:用来访问openstack api和资源;
tenant租户:用于分组或者隔离资源的容器;一个tenant可以对应一个客户、账号、或者项目

keystone验证流程:
20140305225859500.png
1.用户给keystone发送credential进行身份验证
2.keystone收到用户发送的credential进行验证;如果验证失败返回401错误,如果验证成功返回一个临时token
3.用户再次给keystone发送请求一个临时token
4.keystone返回给用户tenants的列表
5. keystone返回给用户一个tenant token,同时keystone给用户返回tenant的service 列表
6. 用户发送tenant所需credentials给keystone
7. 用户发送tenant token给endpoint进行验证
8. endpoint将用户发送的tenant token发送给keystone验证用户发送的tenant token是否正确?tenant token是否被允许使用service(service包括计算、镜像、认证、存储、网络)
9. keystone验证用户tenant token成功后,返回service的endpoint地址,并且让用户去访问service



已有(6)人评论

跳转到指定楼层
445433045 发表于 2016-9-21 12:03:09
请各位大神指点指点,小弟分析的是否正确!!!!
回复

使用道具 举报

starrycheng 发表于 2016-9-21 15:27:06
以前的版本
tenant租户:用于分组或者隔离资源的容器;一个tenant可以对应一个客户、账号、或者项目

后来
引入 Domain 的概念
引入 Group 的概念


Domain 对应一个云用户,相当于取代了tenant,并且包含了tenant,也就是project。


可参考这个
OpenStack Keystone V3 入门介绍
http://www.aboutyun.com/forum.php?mod=viewthread&tid=19851


回复

使用道具 举报

445433045 发表于 2016-9-22 09:37:16
starrycheng 发表于 2016-9-21 15:27
以前的版本
tenant租户:用于分组或者隔离资源的容器;一个tenant可以对应一个客户、账号、或者项目

请教一个问题:为什么keystone在认证的时候是获取一个临时的token值,而不是直接获取一个永久的token。这样不是更方便了吗?还有这个临时的token和keystone的安全机制有联系吗?
回复

使用道具 举报

mengstlly 发表于 2016-9-22 10:17:18
完全看不懂呀,亲~~~~~
回复

使用道具 举报

445433045 发表于 2016-9-22 10:41:10
mengstlly 发表于 2016-9-22 10:17
完全看不懂呀,亲~~~~~

哪里不懂????
回复

使用道具 举报

langke93 发表于 2016-9-22 11:49:46
445433045 发表于 2016-9-22 09:37
请教一个问题:为什么keystone在认证的时候是获取一个临时的token值,而不是直接获取一个永久的token。这 ...

防止破解
token经常变化应该是为了安全
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条