OpenStack Identity(Keystone)身份服务、体系结构与中间件讲解

OpenStack Identity(Keystone)服务为运行OpenStack Compute上的OpenStack云提供了认证和管理用户、帐号和角色信息服务,并为OpenStack Object Storage提供授权服务。

Keystone体系结构

Keystone 有两个主要部件:验证和服务目录

验证:提供了一个基于令牌的验证服务,主要有以下几个概念:

租户(Tenant)

使用OpenStack相关服务的一个组织。一个租户映射到一个Nova的“project-id”,在对象存储中,一个租户可以有多个容器。根据不同的安装方式,一个租户可以代表一个客户、帐号、组织或项目。

用户(User)

代表一个个体,OpenStack以用户的形式来授权服务给它们。用户拥有证书(credentials),且可能分配给一个或多个租户。经过验证后,会为每个单独的租户提供一个特定的令牌。

证书(credentials)

为了给用户提供一个令牌,需要用证书来唯一标识一个Keystone用户的密码或其它信息

令牌(token)

一个令牌是一个任意比特的文本,用于与其它OpenStack服务来共享信息,Keystone以此来提供一个central location,以验证访问OpenStack服务的用户。一个令牌可以是“scoped”或“unscoped”。一个scoped令牌代表为某个租户验证过的用户,而unscoped令牌则仅代表一个用户。令牌的有效期是有限的,可以随时被撤回。

角色(Role)

一个角色是应用于某个租户的使用权限集合,以允许某个指定用户访问或使用特定操作。角色是使用权限的逻辑分组,它使得通用的权限可以简单地分组并绑定到与某个指定租户相关的用户。

服务目录(Service Catalog)

Keystone为OpenStack安装提供了一个REST API端点列表并以此作为决策参考。主要的概念包括:

服务(Service)

一个OpenStack服务,例如nova、swift、glance或keystone。一个服务可以拥有一个或多个端点,通过它用户可以与OpenStack的服务或资源交互。

端点(Endpoint)

一个可以通过网络访问的地址(典型地,一个URL),代表了OpenStack服务的API接口。端点也可以分组为模板,每个模板代表一组可用的OpenStack服务,这些服务是跨区域(regions)可用的。

模板(Template)

一个端点集合,代表一组可用的OpenStack服务端点。

Keystone的组件

Keystone包含一个命令行接口,可以与Keystone API交互以管理keystone和相关服务。

keystone - 运行keystone-admin和keystone-service
keystone-admin - 操作keystone的管理API
keystone-service - 用于验证的,面向用户的AP
keystone-manage - 管理keystone的命令行接口
Keystone还包括WSGI中间件以为Nova和Swift提供验证服务。
Keystone使用一个内置的SQLite数据库 - 为验证用户,将来也可能使用一个外部LDAP服务来代替存储证书

中间件(Middleware)

Keystone中间件位于OpenStack服务前面,处理进来的请求验证。中间件的设计遵循如下的规范。

中间件的源代码位于Keystone/middleware。

中间件支持两个接口:WSGI和REST/HTTP。

REST & HTTP API

如果进来一个未经认证的调用,中间件将响应一个401 Unautorized错误。根据每HTTP的标准,它也会返回一个WWW-Authenticate包头以通知调用者支持哪个协议。对于Keystone验证,响应的语法格式如下:

WWW-Authenticate: Keystone uri="url to Keystone server"The client can then make the necessary calls to the Keystone server, obtain a token, and retry the call with the token.

令牌使用 X-Auth-Toke包头传递。

WSGI API(包头)

当成功验证后中间件经为下行的WSGI应用发送如下包头:

X-Identity-Status

提供请求是否被验证的信息。

X-Tenant

提供了租户ID(在Keystone中以URL的形式出现)。在Keysotne转为采用ID/Name模式之前,它为租户提供了对任意遗留实现的支持。

X-Tenant-Id

唯一不变的租户ID。

X-Tenant-Name

唯一但可变的租户名字。

X-User

用于登录的用户名。

X-Roles

分配给用户的角色。

以上所述是小编给大家介绍的OpenStack Identity(Keystone)身份服务、体系结构与中间件 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • Fuel快速安装OpenStack图文教程

    1 介绍 1.1关于 Mirantis Mirantis,一家很牛逼的openstack服务集成商,他是社区贡献排名前5名中唯一一个靠软件和服务吃饭的公司(其他分别是Red Hat, HP, IBM, Rackspace).相对于其他几个社区发行版,Fuel的版本节奏很快,平均每两个月就能提供一个相对稳定的社区版. 1.2Fuel 是什么? Fuel 是一个为openstack 端到端"一键部署"设计的工具,其功能含盖自动的PXE方式的操作系统安装,DHCP服务,Orchestrati

  • OpenStack安装部署Liberty Neutron

    最近在两台物理机环境中部署了OpenStack的Liberty版本,各个模块都遇到或多或少的问题,但尤以Neutron的问题最让人头疼.尽管OpenStack一直致力于简化Neutron的部署,但对于非网络技术人员来说依然存在着很大的挑战,根本原因还是由于网络自身的复杂性所导致的,因此想要成功部署Neutron还是需要网络基础的,但这并不意味着没有网络基础就不能成功部署Neutron并使其工作.本文将总结Neutron的安装部署步骤,并对遇到的问题进行详细的描述,旨在提供解决问题的思路或者给与一

  • OpenStack 中的Nova组件详解

    Open Stack Compute Infrastructure (Nova) Nova是OpenStack云中的计算组织控制器.支持OpenStack云中实例(instances)生命周期的所有活动都由Nova处理.这样使得Nova成为一个负责管理计算资源.网络.认证.所需可扩展性的平台.但是,Nova自身并没有提供任何虚拟化能力,相反它使用libvirt API来与被支持的Hypervisors交互.Nova 通过一个与Amazon Web Services(AWS)EC2 API兼容的w

  • 一步一步教你安装openstack(图文)

    openstack,安装的门槛比较高,而且相当麻烦,很多的安装文档作者省了不少安装步骤.这对初学的人带来了很大的麻烦,也许作者轻易节省一步,就会创成后面的安装失败.而且初学者由于对openstack不是很了解,错误无法排查,因此很多人都在中途放弃对openstack的学习.其实有一个安装工具可以快速的安装openstack,不需要了解openstack各个组件的之间的关系,只需鼠标轻轻一点,就可以完成对openstack的安装:而且还有诸多功能,如对openstack健康检查,查看节点日志等.

  • Openstack 网络知识资料详细介绍及总结

    Openstack 网络知识资料总结: Openstack 概念 我刚听说要去做 openstack 开发的时候,蛮激动的啊.虽然我不知道 openstack 是什么东西,但是我知道这个东西和云计算有关.云计算这东西,听着就高大上,各大互联网公司都有投人进去搞,所以大方向上是必须肯定的.于是我按捺不住了,想在自己的主机上部署 openstack,来体验下这个是什么东西.经过一顿折腾之后,终于在虚拟机里面用 devstack 把 openstack 给部署出来了(部署过程中,最坑的就是国内的防火墙

  • openstack 重启的服务命令整理总结

    openstack重启的服务命令集合 最近公司项目需要使用Openstack   由于Openstack 重启服务命令比较多,于是就在网上找了下资料,整理下来,希望能帮助到读者! 重启openstack的整个服务 openstack-service restart 1. 重启dashboard service httpd  restart service memcached restart 2. 重启 ceilometer 2.1 cinder service mongod restart 2.

  • CentOS系统中一键安装Openstack图文教程

    前言 首先找到一个国外的网站, http://openstack.redhat.com/Main_Page,进入到quickstart页面中 简单翻译如下: 用到的工具是一个被成为RDO的东东, 能够在基于RHEL内核的linux系统,如RedHat,CentOS,Scientific Linux下,快速实现三步安装.  一:安装RDO软件 sudo yum install -y http://rdo.fedorapeople.org/rdo-release.rpm 二:安装一个叫packsta

  • OpenStack Heat AutoScaling详解及实例代码

    OpenStack Heat AutoScaling 一.背景 Openstack的Heat是在H版之后加入的组件,旨在创建一套业务流程,更轻松的管理一个集群.集群内的虚拟机可以作为一个整体,统一的为客户提供服务.Heat中把功能定义成资源,在Heat中会用到Nova,Neutron,Ceilometer等组件,这些都可以看成是资源,通过模板文件来描述,模板文件可以是yaml格式,也可以是json格式,一般是yaml格式. AutoScaling的概念最早出现在AWS,AutoScaling是一

  • Openstack 启动instance 'hvm'错误问题解决办法

    Openstack 启动instance 'hvm'错误: 2012-05-25 10:07:12 TRACE nova.rpc.amqp Traceback (most recent call last): 2012-05-25 10:07:12 TRACE nova.rpc.amqp File "/usr/lib/python2.7/dist-packages/nova/rpc/amqp.py", line 252, in _process_data 2012-05-25 10:0

  • CentOS 6.4下安装部署OpenStack云计算平台的方法

    前言 OpenStack 是一个开源的 IaaS(基础设施及服务)云计算平台,让任何人都可以自行建立和提供云端运算服务. OpenStack 由一系列相互关联的项目提供云基础设施解决方案的各个组件,核心项目(9 个): 1.计算 (Compute) - Nova: 2.网络和地址管理 - Neutron: 3.对象存储 (Object) - Swift: 4.块存储 (Block) - Cinder: 5.身份 (Identity) - keystone: 6.镜像 (Image) - Glan

  • OpenStack Ceilometer用MongoDB解决占用磁盘空间过大问题

    OpenStack Ceilometer用MongoDB解决占用磁盘空间过大问题 背景:Ceilometer使用MongoDB作为数据库,不断进行采样,导致数据量膨胀,占用过多的磁盘空间. 知识背景 1.数据库文件类型 1.1. journal 日志文件 跟一些传统数据库不同,MongoDB的日志文件只是用来在系统出现宕机时候恢复尚未来得及同步到硬盘的内存数据.日志文件会存放在一个分开的目录下面.启动时候MongoDB会自动预先创建3个每个为1G的日志文件(初始为空). 1.2. namespa

  • OpenStack 创建windows镜像实现步骤

     OpenStack 创建windows镜像 创建windows镜像 创建一个img文件 kvm-img create -f qcow2 win7.qcow2 30G 下载virtio驱动 wget http://alt.fedoraproject.org/pub/alt/virtio-win/archives/virtio-win-0.1-59/virtio-win-0.1-59.iso wget http://www.linuxwind.org/download/virtio-win-1.1

随机推荐