抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

OpenStack Keystone基础。

Keystone概论

Keystone主要工作为:

  1. 管理用户及其权限
  2. 维护OpenStack Services的Endpoint
  3. 认证和鉴权

Keystone主要有以下几个概念:

User、Credentials、Authentication、Token、Project、Service、Endpoint、Role

##User

任何使用OpenStack的实体。(可以是真正的用户,或者是其他系统或服务)

当User请求访问OpenStack时,Keystone会对其进行验证。

Horizon在Identity->Users管理User(缺图)

默认用户除了admin和demo,OpenStack也为nova、cinder、glance、neutron服务创建了响应的User,使得admin可以管理这些User。

Credentials

User用来证明自己身份的信息。(1. 用户名\密码 2.Token 3.API Key 4.其他高级方式)

Authentication

Keystone验证User身份的过程。

User访问OpenStack时向Keystone提交用户名和密码形式的Credentials,Keystone验证通过后会给User签发一个Token作为后续访问的Credential。

Token

Token是由数字和字母组成的字符串,User成功Authentication后Keystion生成Token并分配给User。

Token的几点特性

  1. Token用作访问Service的Credential
  2. Service会通过Keystone验证Token的有效性
  3. Token的有效期为24小时

Project

Project用于将OpenStack的资源进行分组和隔离。

Project可以是一个客户(公有云),也可以是项目组(私有云)。

资源的所有权属于Project,而不是user。

每个user必须挂在Project才能访问该Project的资源。

一个User可以属于多个Project。

Horizon在Identity->Projects管理Project(缺图)

通过Manage Member将User添加到Project(缺图)

Service

Service包括计算nova、存储cinder、对象存储swift、磁盘服务glance、网络服务neutron等。

每个Service都会提供若干个Endpoint,User通过Endpoint访问资源和执行操作。

Endpoint

Endpoint是一个网络上可访问的地址url。

Service通过endpoint暴露自己的API。

Keystone负责管理和维护每个Service的Endpoint。

1
2
3
# 查看Endpoint命令
$ source devstack/openrc admin admin
$ openstack catalog list

Role

安全包括两个部分:认证Authentication和鉴权Authorization

Authentication:认证身份

Authorization:权限管理

Keystone通过role实现鉴权Authorization

  1. KeyStone定义roleopenstack role list
  2. 为User分配一个或者多个 Role。(在Horizon->Identity->Project->Manage Members修改)
  3. Service决定每个Role的权限。(通过各自的policy.json进行修改)

Keystone工作流程

评论