Openstack Keystone 认证流程(八)--总结

来源:互联网 发布:java求最大公约数算法 编辑:程序博客网 时间:2024/04/29 08:25

花了差不多一星期的时间,总算是坚持下来了。以前都不太喜欢到处贴代码的风格,但是轮到自己,还是一样。

最后一篇,就不再贴代码了。前面对用户名及密码认证基本上都过了一次。但里面都是很细节的东西,而且没有太多的逻辑及框架, 最后一篇, 基于问题及框架来总结下。

Q: Keystone在Openstack中是干什么的?

Keystone是进行3A认证的, 是所有服务的起始点,只有经过认证,其它的服务才会认为可以合法执行。它是Openstack的钥匙。

Q:Keystone是怎么实现的?

Keystone是基于Python的WSGI归范, 提供基于RESTful风格的API接口来实现种服务。

Q: Keystone的软件架构是什么样的?

Keystone大概分为五层,中间件、 路由层、控制器层、数据管理层(Manager)及后台数据库层。

中间件完成一些基本的共用的功能,如log的记录,请求大小的检查,内容格式的检查及转换等;

路由主要是把HTTP请求解析成controller及action,然后执行其相应的action.

控制器是对业务逻辑的实际控制

数据管理层对控制器提供数据服务, 因为Keystone可以支持不同的数据存取方式,所以需要一个Manager提供对外一致的接口。

后台数据库是用来实际实现数据存取的服务,它可以有多种类型。具体使用那一种可以通过配置文件来确认。当前支持的类型有:Mysql , PAM, LDAP, KVS。

Q: Keystone的目录结构和其五层之间有关联?

Keystone的目录结构及文件名很好地表现了这五层结构, 比喻identify服务,identify的目录结构如下:
identify目录结构
controllers.py是控制器的实现,负责各种业务逻辑。然后在core.py中是对controller提供数据服务接口的Manager实现。routers.py是对应的路由信息。在backends目录中,是各种后台数据库的具体实现,他们为Manager提供接口服务。而在keystone的contrib目录中,是大部分中间件的实现。

Q: Keystone的数据库表有那些?

MariaDB [keystone]> show tables;

Tables_in_keystone assignment credential domain endpoint group migrate_version policy project region role service token trust trust_role user user_group_membership
0 0
原创粉丝点击