分享

openstack访问keystone获得的token是保存在哪里的?

arsene_about 发表于 2016-6-13 20:45:47 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 4 9426
请教一下, horizon的认证依赖openstack_auth项目, 但是这个项目过于复杂, 本人准备重新写一个简化版的sso身份认证系统。 但是具体openstack的认证机制还没有完全理清楚。  大概知道是首先去keystone服务进行认证获取 token, 然后使用其他服务的时候带着token就可以了。 但是具体获得的token是保存在哪里的, session中吗? 谢谢啊!

已有(4)人评论

跳转到指定楼层
qcbb001 发表于 2016-6-13 21:52:59
具体还需要查看源码,推测应该是保存到数据库中了。下面是token格式


{"access": {"token":{"expires": "2013-06-04T03:06:23Z", "id":"5fcf748e0d5d4a02ae3465e0dd301f40"}, "serviceCatalog": {},"user": {"username": "username", "roles_links":[], "id": "ce205b61760c463cb46e41909de8495f","roles": [], "name": "username"}}}

回复

使用道具 举报

arsene_about 发表于 2016-6-16 23:40:00
qcbb001 发表于 2016-6-13 21:52
具体还需要查看源码,推测应该是保存到数据库中了。下面是token格式

最近正在研究源码, 貌似是在session中保存了 token对象,region_endpoint, user_id, service_region。 然后authmiddle里面做了monkey patch 把get_user对象重新定义了一下。   新的get_user就是通过以上session中的内容构造出user对象,放到request中。   但是有个问题, token对象存放在了session中, 如果我session_engine用的是缓存, 如memcache。 那如果要跨域共享session, 会不会有什么问题, (因为有个token对象在session中)

回复

使用道具 举报

nextuser 发表于 2016-6-17 07:49:19
arsene_about 发表于 2016-6-16 23:40
最近正在研究源码, 貌似是在session中保存了 token对象,region_endpoint, user_id, service_region。  ...

楼主可以在研究研究,session可能是存放的,但是如果一旦session被禁止,哪openstack就会出问题了。这样openstack就太弱了。也不会全世界普及。楼主看看其它地方, 肯定还有的。
回复

使用道具 举报

arsenduan 发表于 2016-6-22 07:17:36
nextuser 发表于 2016-6-17 07:49
楼主可以在研究研究,session可能是存放的,但是如果一旦session被禁止,哪openstack就会出问题了。这样o ...

openstack是存入session的,如果禁用了,openstack会有相关提示
回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条