Openstack Keystone 认证流程(一)--Overview

Openstack 认证(Indentity)概念

Openstack,不做过多解释,让我们直入主题—Keystone。Openstack是一个SOA的架构,理论上各个子项目独立提供相关的服务,互不依赖。例如Nova提供计算服务,Swift提供对象存储服务,Glance提供镜像服务等。但是实际上(至少从Openstack目前开源实现上来看),所有组件都依赖于Keystone提供3A(Account,Authentication, Authorization)服务。除了3A之外,Keystone还对外提供服务目录(ServiceCatalog)服务,类似于UDDI服务的概念,用户(无论是Dashboard, APIClient)都需要访问Keystone获取服务列表,以及每个服务的地址(Openstack中称为Endpoint)。所以,学习Openstack第一个必须搞定的组件必然是Keystone。

以上引用http://blog.csdn.net/xuyuefei1988/article/details/19328321

Openstack认证服务提供如下功能:

  • 用户跟踪及权限管理
  • 基于端点(endpoint)提供有效服务的分类管理

在安装Keystone服务时,你必须注册安装相对应的每种服务到keystone中, 然后keystone就参跟踪及记录各种服务的位置信息, 为以后提供服务。

要了解Openstack的认证服务, 必须明白以下概念:

用户(User)
它是使用Openstack服务的人,系统或是服务的一种逻辑表现形式。 认证服务对用户的请求进行验证服务。 认证成功后,会返回一个token及相对应的项目的服务信息。用户可以根据这些服务信息作进一步的操作。

证书(Credentials)
用来确认用户认证信息的数据。比如:用户名和密码, 用户名及API key, 或是已被认证服务认证的token。

认证(Authentication)
用户认证的确认流程。Openstack用户可以通过可被支持的一些证书集合中的一个来进行认证。
这些证书可以是用户名和密码, 用户名及API key, 认证成功后,会返回一个token, 后续的服务就可以通过这个token时行后续的服务。

令牌(Token)
用来访问Openstack API和资源的一组可打印的字符串。一个令牌(Token)可在任何时候被调用, 并存在一个有限的时间, 过了这个时间的Token, 会被认为是无效认证。

Tenant
Tenant是对资源进行分组或隔离一种方式。Tenant对认证服务进行分组和隔离。根据不同的操作用户, 一个Tenant可被映射成不同的角色, 可以是一个客户, 帐号, 组织或是项目。

服务(Service)
像Openstack的其它服务一样,如: Compute (nova),Object Storage (swift) 或 Image Service (glance)。 它提供一个或是多个端点(endpoint)用来访问Openstack的资源或是对Openstack进行操作。

端点(Endpoint)
用来访问Openstack服务的一个可访问的网络地址, 它一般为一个URL地址。 使用一个扩展的模板, 可以创建一个端点。 它能表现在一个特定范围内可被访问的消费服务模板。

角色(Role)
定义用户的权限和对一些特定的操作进行分组。
在认证服务中, 一个令牌(Token)是用来表示一个用户的一组角色。也就是说一个用户可以有多个角色, 一个令牌是包括一个用户所有可访问的权限的集合。

Keystone client
Openstack 认证服务的命令行交互接口。比如说我们可以用keystone service-create来创建一个服务, 或是用keystone endpoint-create*来创建一个服务端点。

认证服务的流程如下:

你可能感兴趣的:(Openstack,Keystone)