openstack——Keystone组件

混江龙づ霸主 提交于 2019-12-27 02:20:44

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认定原理

12

  • UUID认证的原理
    • 当用户拿着有效的用户名和密码去keystone认证后,keystone就会返回给他一个token,这个token就是一个uuid
    • 以后用户进行其他操作时,都必须出示这个token。例如当nova接到一个请求后,就会用这个token去向keystone进行请求验证,keystone通过对比token,以及检查token的有效期,来判断token是否合法,然后返回给nova这一个请求是否合法。
    • 这一方式十分简单,但是在大量业务场景下,keystone将会成为性能瓶颈。
      13
  • PKI认证的原理
    • keystone初始化时,keystone生成了CA的公钥CA.pem和私钥CA.key。同时,产生了keystone自己的公钥keystone.pubkeystone.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成为性能瓶颈的问题。
      14

KeyStone policy文件

15

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!