主要功能
- 身份认证:对用户进行身份认证,并对应权限范围
- 用户授权(令牌管理权限):以 token 令牌的方式标识用户对应拥有的权限范围
- 用户管理(寻址功能):提供用户访问资源的寻址功能(URL)
- 服务目录:所有服务的交互或调用,均需要 keystone 进行认证
包含的组件
Server:使用RESTful接口(三种api)提供认证授权服务的集中式serverDrivers:集成到server内的驱动或者服务后端Modules:中间件运行在正在使用认证服务的openstack组件的地址空间
管理对象
User:任何使用 OpenStack 的实体,可以是真正的用户,其他系统或者服务。当 User 请求访问 OpenStack 时,Keystone 会对其进行验证Project:各个服务中可被访问的资源集合(资源组),用于将各种资源(计算、存储和网络)进行分组和隔离。资源的所有权属于 Project ,而不是 User。每个 User(包括 admin)必须挂在 Project 里才能访问该 Project 的资源,一个 User 可以属于多个 ProjectRole:角色,代表一组用户可以访问的资源权限Authentication:一个字符串表示,作为访问资源的令牌(Token 包含了在指定范围和有效时间内可以被访问的资源)Credentials:用于确认用户身份的凭证,用户名和密码,或者是用户名和API 密钥,又或是身份管理服务提供的认证令牌OpenStack service:即 OpenStack 中运行的组件服务Endpoint:一个网络上可访问的地址,通常是一个 URL,Service 通过 Endpoint 暴露自己的 API。Keystone 负责管理和维护每个 Service 的 Endpoint
[root@controller ~]# openstack catalog list
+-----------+----------------+-----------------------------------------------------------------------------+
| Name | Type | Endpoints |
+-----------+----------------+-----------------------------------------------------------------------------+
| glance | image | RegionOne |
| | | admin: http://controller:9292 |
| | | RegionOne |
| | | internal: http://controller:9292 |
| | | RegionOne |
| | | public: http://controller:9292 |
| | | |
| heat | orchestration | RegionOne |
| | | internal: http://controller:8004/v1/4f1f49c7caec45f9b6a61133818c8b62 |
| | | RegionOne |
| | | admin: http://controller:8004/v1/4f1f49c7caec45f9b6a61133818c8b62 |
| | | RegionOne |
| | | public: http://controller:8004/v1/4f1f49c7caec45f9b6a61133818c8b62 |
| | | |
| heat-cfn | cloudformation | RegionOne |
| | | admin: http://controller:8000/v1 |
| | | RegionOne |
| | | internal: http://controller:8000/v1 |
| | | RegionOne |
| | | public: http://controller:8000/v1 |
| | | |
| neutron | network | RegionOne |
| | | admin: http://controller:9696 |
| | | RegionOne |
| | | public: http://controller:9696 |
| | | RegionOne |
| | | internal: http://controller:9696 |
| | | |
| cinderv2 | volumev2 | RegionOne |
| | | admin: http://controller:8776/v2/4f1f49c7caec45f9b6a61133818c8b62 |
| | | RegionOne |
| | | public: http://controller:8776/v2/4f1f49c7caec45f9b6a61133818c8b62 |
| | | RegionOne |
| | | internal: http://controller:8776/v2/4f1f49c7caec45f9b6a61133818c8b62 |
| | | |
| placement | placement | RegionOne |
| | | admin: http://controller:8778 |
| | | RegionOne |
| | | internal: http://controller:8778 |
| | | RegionOne |
| | | public: http://controller:8778 |
| | | |
| nova | compute | RegionOne |
| | | internal: http://controller:8774/v2.1 |
| | | RegionOne |
| | | public: http://controller:8774/v2.1 |
| | | RegionOne |
| | | admin: http://controller:8774/v2.1 |
| | | |
| cinderv3 | volumev3 | RegionOne |
| | | internal: http://controller:8776/v3/4f1f49c7caec45f9b6a61133818c8b62 |
| | | RegionOne |
| | | admin: http://controller:8776/v3/4f1f49c7caec45f9b6a61133818c8b62 |
| | | RegionOne |
| | | public: http://controller:8776/v3/4f1f49c7caec45f9b6a61133818c8b62 |
| | | |
| keystone | identity | RegionOne |
| | | admin: http://controller:35357/v3 |
| | | RegionOne |
| | | internal: http://controller:5000/v3 |
| | | RegionOne |
| | | public: http://controller:5000/v3 |
| | | |
| swift | object-store | RegionOne |
| | | public: http://controller:8080/v1/AUTH_4f1f49c7caec45f9b6a61133818c8b62 |
| | | RegionOne |
| | | admin: http://controller:8080/v1 |
| | | RegionOne |
| | | internal: http://controller:8080/v1/AUTH_4f1f49c7caec45f9b6a61133818c8b62 |
| | | |
| cinder | volume | RegionOne |
| | | public: http://controller:8776/v1/4f1f49c7caec45f9b6a61133818c8b62 |
| | | RegionOne |
| | | internal: http://controller:8776/v1/4f1f49c7caec45f9b6a61133818c8b62 |
| | | RegionOne |
| | | admin: http://controller:8776/v1/4f1f49c7caec45f9b6a61133818c8b62 |
| | | |
+-----------+----------------+-----------------------------------------------------------------------------+
keystone 认证过程
- user 登录(keystone 认证)
- user 进入控制台或命令行界面(位置点)
- user 发起创建虚拟机的请求(向 keystone 认证指定位置点)
- 请求nova 组件(向 keystone 认证)
- nova 组件开始执行请求,并调用其他所需的 glance、neutron 等资源(向 keystone 认证,指引对用服务的位置点)
- glance 和 neutron 服务收到请求后(向 keystone 认证)才会给与 nova 对应的资源
- nova 获取资源后,调用对应资源,创建实例,最后将结果返回给用户(成功?失败?原因…)
整体关系

keystone与openstack其他服务的关系

keystone与其他组件协同工作流程

基础命令
【Centos7系列】Openstack-keystone基础命令 – Nana Sharing Website (iceboundnana.top)

Comments NOTHING