OpenStack----keystone 认证服务
文章目录
前言:
本篇博客为OpenStack—keystone组件基础理论,之后会持续更新~~
一、keystone 简介
- keystone 是OpenStack的组件之一,用于为OpenStack家族中的其它组件成员提供统一的认证服务,包括身份验证、令牌的发放和校验、服务列表、用户权限的定义等等。云环境中所有的服务之间的授权和认证都需要经过 keystone. 因此 keystone 是云平台中第一个即需要安装的服务。
二、keystone主要功能
2.1 职能
- 提供统一的验证方式
2.2 主要功能
- ① 角色权限管理
- ② 其他组件地址管理:负责存放其他组件URL路径的目录
- ③ 3A服务认证:账号(账户管理)、身份认证、办法授权
三、keystone基本概念
3.1 keystone基本概念
-
① 用户
用户包含:使用的人、群集里的服务或系统。就像Linux系统里的用户有普通用户、root、系统用户等。
在OS中是通过一串字符串来表示,id
用户在登录时会分配到令牌,通过令牌来访问其他服务
-
② 凭证
用来验证身份信息的数据,如令牌、用户名密码、apikey等
-
③ 验证
验证是否合法、令牌是否有效(是否过期)
-
④ 令牌
用于访问各个服务api或资源的一串字符串,临时令牌具有一定的时效性,过期便失效。
-
⑤ 租户
独立的资源容器
-
⑥ 服务
OS中提供的服务,如glance镜像,nova计算,swift存储。服务提供了一个或多个端口以供访问。
-
⑦ 端点、端口
用于访问某个服务的URL地址,api接口。
一个端点模板包含一个URL列表,列表中的每个URL都对应一个服务实例的访问地址并且具有三种权限
Admin:只能被管理员访问
Public:可以被全局访问
Private:只能被openstack 内部服务访问
-
⑧ 角色
用户权限的集合,如管理员拥有最高权限
-
⑨ Keystone client
通过java、py、go等语言开发出来的。c/s框架,客户端与服务端采用http协议通信。
3.2 访问请求控制(Token)
- ① Service(nova,glance,swift等服务需要在keystone上注册)
- ② Endpoint(service暴露出来的访问地址)
- ③ Token(访问资源的令牌,具有时效性)
3.3 注册表服务 (Catalog)
- openstack服务需要注册到keystone注册表中
四、keystone 工作流程
4.1 工作流程图
4.2 工作过程描述
- ① user使用命令或控制台登录,需要先将自己的资格证书发给keystone,认证成功后,keystone会给与用户一个临时令牌和一个访问服务的端点
- ② user把临时的令牌交给keystone,发送创建虚拟机请求,nova收到令牌后,会向拿着令牌向keystone确认合法性,keystone认证成功后返回给nova
- ③ nova创建虚拟机需要镜像,所以拿着请求镜像服务的令牌给与glance服务,glance收到令牌后拿着令牌向keystone认证合法性,keystone认证成功后返回给glance,此时glance服务将nova所请求的镜像给与nova
- ④ nova创建虚拟机需要虚拟网络,所以向neutron发出请求,neutron收到nova给与的令牌向keystone认证合法性,是否可用,keystone认证成功后返回给neutron,随即neutron给与nova提供所需的网络服务
- ⑤ 最后nova服务开始创建vm虚拟机,创建完成后返回信息给user: the vm is create sucessfull