【Keystone】token
来源:互联网 发布:遗传算法视频讲解 编辑:程序博客网 时间:2024/06/10 21:34
Keystone是OpenStack中负责管理身份验证、服务规则和服务令牌功能的模块。
如果用户每次在访问服务的过程中,都需要提供用户名和密码,那么势必存在信息泄露的风险;token,即服务令牌,就可以解决这个问题。
用户在访问OpenStack之前,首先需要使用用户名和密码获取一个token,接下来就可以使用此token访问任何资源。
OpenStack目前支持4种令牌,分别是UUID令牌、PKI令牌、PKIZ令牌和Fernet令牌。
uuid令牌,顾名思义,在Keyston中是一串36位的ASCII字符串,用于唯一标识一个令牌。这个uuid的内容是没有实际意义的,有关的令牌信息包括超时时间、用户id以及额外信息等都需要记录在数据库(包括内存数据库memcached和自己实现的kvs)中。每次访问资源或者API的时候都需要传递该uuid令牌,OpenStack的所有组件都需要访问Keystone去验证该uuid令牌,然后鉴权并执行操作。
PKI令牌,是一种借助非对称加密实现的令牌。在这里Keystone充当其中的ca,每当生成一个令牌,Keystone都会使用私钥对其进行签名;与uuid令牌不同的是,PKI令牌内包含了令牌的有效信息,因此使用该PKI令牌访问资源或API时,OpenStack的组件无需去Keystone进行验证,而是使用Keystone提供的数字证书进行本地验证,这有效的减轻了Keystone的压力。但是,带了一个新的问题,PKI令牌最小都会打到KB级别,导致传递的数据包的长度过长。
为了解决PKI令牌的问题,引入了PKIZ令牌,就是使用ZLIB对PKI令牌进行压缩,但是压缩效果并不是十分明显。
以上3种令牌,都需要存入数据库,当运行时间很长以后,就会有大量的token存储于数据库中,包括已经过期的。这就会影响到Keystone的数据库读写性能,继而影响到资源或API的调用。为了解决这个问题,我们可以定期使用"keystone-manage token_flush"清理掉Keystone中已过期的token。但这个方法治标不治本,为此OpenStack社区引入了Fernet令牌,它是不需要进行持久化的,只有K版及以上版本才支持该令牌。Fernet令牌使用对称加密进行加密,里面只包含少量的令牌信息;使用该令牌访问资源或API时,OpenStack组件需要去Keystone进行验证并返回更多的有效信息。该令牌由于使用对称加密,因此安全性较低,需要经常更换密钥。
- 【Keystone】token
- keystone从uuid token转到fernet token
- Openstack keystone token to memcache
- keystone获取token代码分析
- openstack keystone token创建,验证流程
- 获取Keystone token的三种方式
- Fernet Token in Keystone v3 (by quqi99)
- 理解 Keystone 的四种 Token
- 理解 Keystone 的四种 Token
- openstack keystone token 超时时间扩展
- 理解Keystone的4种token
- (六)、获取Keystone token的三种方式
- openstack kilo keystone token问题及性能优化
- Keystone几种token生成的方式分析
- 了解和使用keystone(五)获取token
- keystone
- keystone
- keystone
- Linux下的RPM命令
- FFT快一些的模板
- 如何书写Openstack命令行
- mybatis自动生成dao, model, mapper xml文件
- Spring-Boot学习笔记(四)JDBC使用
- 【Keystone】token
- 12个常用的JavaScript简写技巧
- 浅谈Three.js源码-render之WebGLState.js(重要)
- FSDataOutputStream (浅析hadoop写入数据api)
- 十大基础应用算法及C++实现(一)----快速排序算法
- poj1386 Play on Words【欧拉图】
- 学习日记1
- 浅谈ARP
- SVO深度解析(三)之深度滤波(建图部分)