Keystone
Keystone
手动安装
二进制安装包
源码安装
- 首先安装
keystone
依赖的操作系统的软件包
$ sudo apt-get install git python-dev sqlite3 libxml2-dev libxslit1-dev libsasl2 libsqlite3-dev libssl-dev libldap2-dev
$ sudo apt-get isntall mysql-server mysql-client python-mysqldb
- 创建
keystone
数据库
$ mysql -u root -python
> create database keystone ;
> grant all on keystone.* to 'keystone'@'%'identified by '123456';
- 下载
keystone
源码
$ git clone https://github.com/openstack/keystone.git
- 源码安装
keystone
$ python setup.py install 或者 sudo pip install -e .
- 创建配置文件
$ sudo mkdir -p /etc/keystone
$ sudo cp ~/keystone/etc/* /etc/keystone/
- 修改配置文件
keystone
配置文件
- 常见操作讲解及简单演示(最新版本的相关命令使用
openstack client
)Service
相关的命令(keystone help
)
keystone service-list | service-get | service-create | service-delete
Endpoint
相关的命令
keystone endpoint-list | endpoint-get | endpoint-create | endpoint-delete
Tenant
相关的命令
keystone tenant-create | tenant-delete | tenant-get | tenant-list | tenant-update
User
相关的命令
keystone user-create | user-get | user-password-update | user-role-list | user-update | user-delete | user-list | user-role-add | user-role-remove
Role
相关的命令
keystone role-create | role-delete | role-get | role-list
keystone
认定原理
- UUID认证的原理
- 当用户拿着有效的用户名和密码去
keystone
认证后,keystone
就会返回给他一个token
,这个token
就是一个uuid
。 - 以后用户进行其他操作时,都必须出示这个
token
。例如当nova
接到一个请求后,就会用这个token
去向keystone
进行请求验证,keystone
通过对比token
,以及检查token
的有效期,来判断token
是否合法,然后返回给nova
这一个请求是否合法。 - 这一方式十分简单,但是在大量业务场景下,
keystone
将会成为性能瓶颈。
- 当用户拿着有效的用户名和密码去
- PKI认证的原理
- 在
keystone
初始化时,keystone
生成了CA
的公钥CA.pem
和私钥CA.key
。同时,产生了keystone
自己的公钥keystone.pub
和keystone.key
,然后将keystone.pub
进行了CA
的签名,生成了keystone.pem
。 - 当用户拿着有效的用户名和密码去
keystone
认证后,keystone
就将用户的基本信息通过keystone.key
进行了加密,将这一密文作为token
返回给用户。当用户发出一个请求,例如nova
拿到token
后,首先需要拿到keystone
的证书keystone.pom
(这一过程只需要进行一次),然后通过keystone.pem
来进行解密,获取用户的信息,就可以知道该用户是否合法。 - 对于用户的
token
还需要对token
的合法时间,以及token
还是否存在进行判断。所以当nova
每一次拿到token
后还会先向keystone
询问一次token
的失效列表,来查看token
是否失效。当然这一过程对于keystone
的负载还是相当轻的,所以PKI
还是有效的解决了keystone
成为性能瓶颈的问题。
- 在
KeyStone policy文件
来源:CSDN
作者:胖可仃
链接:https://blog.csdn.net/herhan1/article/details/103715389