Openstack是一个SOA的架构,理论上各个子项目独立提供相关的服务,互不依赖。例如Nova提供计算服务,Swift提供对象存储服务,Glance提供镜像服务等。但是实际上(至少从Openstack目前开源实现上来看),所有组件都依赖于Keystone提供3A(Account, Authentication, Authorization)服务。除了3A之外,Keystone还对外提供服务目录(Service Catalog)服务,类似于UDDI服务的概念,用户(无论是Dashboard, API Client)都需要访问Keystone获取服务列表,以及每个服务的地址(Openstack中称为Endpoint)。所以,学习Openstack第一个必须搞定的组件必然是Keystone。
首先我们先看一下Keystone的几个基本概念,灰常重要!!!
User: 直译过来就是用户,如果意译的话就是马甲 :) 也就是一个人的账号,当然一个人可以有多个马甲,你懂得。
Crenditial: 用来证明用户身份的证据,大白话就是“信物”,这是一个逻辑概念。具体可以是密码,驾照、身份证等。
Authentication: 鉴权,也即对用户身份鉴别的一个过程。
Token: 令牌。对用户鉴权完毕之后,Keystone会为用户颁发一个令牌,这样用户在请求其他服务的时候,只需要亮出自己的令牌即可,而不需要发送自己的密钥。当然以防仿冒令牌,令牌是有时限的。
Service:服务。之前提到过,Keystone提供了系统能够提供的服务目录,例如Nova, Glance, Swift等。
Endpoint:直译为端点,其实指的是访问服务的地址。如果细分的话,又可以进一步分为对外提供服务的地址,管理地址等。
Role: 权限。这就是3A中的Authorization,也即赋予该用户的权限。我们知道Openstack提供的是一个多租户环境,在Openstack中租户对应到项目(Project)。一个用户可以同时属于多个不同的项目,当然在不同的项目中可以充当不同的角色,也即拥有不同的权限。
在了解以上概念之后,从很高很高的高度来看一下Keystone的流程:
关键的两点:1) User从Keystone获取令牌以及服务列表;2) User访问服务时,亮出自己的令牌。相关的服务向Keystone求证令牌的合法性。
大致了解了这个流程之后,我们再来理解keystone的配置就不难了:
1) 从用户的角度来看,它归属于一个或多个Project,并且在每个项目中充当一个角色。所以我们需要创建Project,创建User,创建Role,并将User和Project、Role关联起来;
2) Keystone本质是提供Identity服务的,所以它的实现或者提供的机制也是基于用户来设计的。为了提供服务目录,配置Keystone的时候创建了一个特殊的Service Project,为每个服务创建对应的用户(Nova, Swift, Quantum...),并且都归属于Service Project。然后配置、设置相应的Endpoint。
相关推荐
- CentOS: `yum install openstack-keystone openstack-keystoneclient httpd memcached mysql-devel` 3. **配置数据库**:创建一个用于Keystone的数据库,并设置相应的用户和权限。这通常涉及登录到数据库服务器...
centos7下centos-release-openstack-pike
官方离线安装包,亲测可用
centos-release-openstack-train-1-1.el7.centos.noarch.rpm
官方离线安装包,测试可用。请使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
centos7下安装centos-release-openstack-ocata的yum源设置
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。请使用rpm -ivh [rpm完整包名] 进行安装
6-2Openstack-keystone 6-3Openstack-keystone 6-4Openstack-keystone 6-5Openstack-keystone 6-6Openstack-rabbitmq 7-1Openstack-cinder 7-2Openstack-cinder 7-3Openstack-cinder 7-4Openstack-swift 7-5...
OpenStack Keystone token机制详解 OpenStack Keystone 是 OpenStack 的身份验证机制,token 是用户的一种凭证,需拿正确的用户名/密码向 Keystone 申请才能得到。token 是 OpenStack 中的核心概念之一,用户访问 ...
openstack-install-guide-yum-kilo
openstack-utils-2017.11+git.1480685772.571a0f8-1.1.noarch.rpm,方便完成OpenStack配置文件的快速修改,命令格式为:openstack-config --set 。
centos7下centos-release-openstack-ocata-1-2
OpenStack-train版安装手册,包含环境介绍、环境安装、安装Spice控制台、实例热迁移的libvirt、实例调整实例大小、负载均衡即服、务网络QoS等
centos7下centos-release-openstack-mitaka
centos8下centos-release-openstack-train
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
centos-release-openstack-queens-1-2.el7.centos.noarch.rpm