1.keystone
1.1简介
keystone是openstack中的一个独立的安全认证模块,主要负责openstack用户的身份认真、令牌管理、提供访问资源的服务目录(即指引路径)、以及基于用户角色的访问控制
keystone类似一个服务总线,或者说是整个openstack框架的注册表,其他服务通过keystone来注册其服务的Endpoint(服务访问的URL),任何服务之间相互的调用,需要经过keystone的身份验证,来获得目标服务的Endpoint来找到目标服务
(即先向keystone通过身份验证,则keystone会提供服务的路径)
1.2keystone主要功能
身份认证
令牌的发放和校验(keystone管理令牌)
用户授权
授予用户在一个服务中所拥有权限(授权包括权限范围、有效期)
用户管理
管理用户账户
服务目录
提供可用服务的API端点
授权、鉴权通过后,会指引目标服务的endpoint(API→web路径→URL路径),即具体路径
1.3keystone相关概念
- User
指使用openstack的用户 - Project
可以理解为一个人、或服务所拥有的资源集合 - Role
用于划分权限。通过给User指定Role,使User获得Role对应操作权限 - Authentication
确定用户身份的过程 - Token
是一个字符串表示,作为访问资源的令牌。Token包含了在指定范围和有效时间内,可以被访问的资源 - Credentials
用于确认用户身份的凭证。用户的用户名和密码,或者是用户名和API密钥,或者身份管理服务提供的认证令牌 - Service
openstack service,即openstack中运行的组件服务。如nova、swift、glance、neutron、cinder等 - Endpoint
一个可以通过网络来访问和定位某个openstack service的地址,通常是一个URL
1.4keystone认证流程(工作过程)
- openstack用户通过命令行或者horizon的方式登录keystone
- keystone通过credentials验证用户身份,验证成功便发给用户Token令牌和Endpoint(服务路径)
- 用户使用Token令牌和已知服务路径向Nova发起请求
- Nova用此Token令牌向keystone确认
- keystone确认认证通过
- nova开始创建虚拟机,用token令牌向glance、neutron发起请求,并索要虚拟机需要的镜像资源、网络资源
- glance和neutron用nova给的token向keystone确认认证
- keystone向glance和neutron确认认证通过
- glance和neutron将镜像资源和网络资源发给nova
- nova获得资源,开始创建虚拟
- 创建虚拟机完成,nova返回完成信息给用户