关于keystone模块,我将从整体架构与功能,用户信息管理,认证服务3个模块用3篇文章进行分析。
1. keystone的基本功能
keystone作为openstack的Identity Service,提供了用户信息管理和完成各个模块认证服务。
用户信息管理:user/tenant基本信息,tenant管理
认证服务:登录认证,各个组件API的权限控制
2.keystone的架构
既然keystone为各个模块提供认证服务,所以各个模块与keystone都有所交互。其中登录认证体现在用户访问各个组件的API时,调用了WSGI框架的authtoken filter,该filter最调用keystoneclient ,最终通过keystone验证token,完成对用户的登录认证。如果认证失败,用户将不能访问该API。
以nova为例,authtoken filter在/etc/paste.ini目录中(如果不熟悉WSGI框架,暂且忽略之)
keystone在openstack的位置如下:
3. keystone 基本概念介绍
1). User
User可简单的理解为用户,用户携带信物(token)能够访问openstack各个服务和资源。
2). Tenant
Tenant即租户,早期版本又称为project,它是各个服务中的一些可以访问的资源集合。比如通过nova创建虚拟机时要指定到某个租户中,在cinder创建卷也要指定到某个租户中。用户访问租户的资源前,必须与该租户关联,并且指定该用户在该租户下的角色。
3). Role
Role即角色,可以理解为VIP等级,用户的Role越高,在openstack中能访问的服务和资源就更多。
4). Service