目录
Keystone介绍
Keystone在OpenStack框架中提供身份验证服务规则和服务令牌功能,提供了认证服务的API,为OpenStack中各个组件提供了认证服务,类似于服务总线,或者说是整个OpenStack框架的注册表,其他的服务都是通过Kestone注册其服务的URL路径来实现服务之间的相互访问和调用
常用术语
User:OpenStack最基本的用户
代表OpenStack中最基本的用户,即进行访问的人或程序
Project:指分配给使用者的资源的集合
项目或租户,指的是分配给使用者的资源的集合,如给租户A分配50个实例100核CPU200G内存等
Role:代表一组用户可以访问资源的权限
Domain:定义管理边界,可以包含多个project/tenant、user、role等,是最上层的一个集合
Endpoint:服务的URL路径,暴露出来的访问点
Keystone认证模型
Domain、Project、User的关系
首先创建两个域Domain1和Domain2,分配给不同的集团公司使用,每个集团公司可能有分公司,可以在两个Domain下分别创建项目Project1、Project2、Project3分配给三个公司来使用,在Project下可以创建不同的用户,并且用户可以跨多个Project存在。
Keystone的认证过程
当用户在创建时通过Keystone将会申请一张访问令牌token,假设当用户提出创建虚拟机实例的请求时,首先将自己的访问令牌和访问请求提交给Nova服务,Nova服务为确保用户的访问令牌并没有被篡改过,因此首先将会将访问令牌交给Keystone进行验证,认证通过后,Nova为了启动虚拟机实例,还需要向Glance组件申请相关的镜像资源,Glance为确保访问令牌在传递过程中没有被篡改,也需要将访问令牌发送给Keystone进行确认,验证通过后会发放镜像资源给Nova组件,除了这些,虚拟机实例的创建,还需要存储、网络等一些资源,因此Nova组件需要给负责各种资源的模块来传递资源申请请求,在资源申请的请求中都会伴随着访问令牌的验证,最终Nova会拿到启动虚拟机实例的所有资源后进行实例的启动,然后分配给相关的用户。从整个过程来看,资源的调用都离不开Keysone的验证,可见认证服务在整个Openstack中占据着必不可少的关键地位。