1.keystone 介绍及其组成
OpenStack Identity 服务提供了一个单一的功能集合,包括管理认证,授权和服务目录。
Identity 服务通常作为和用户第一个交互的服务。一旦认证成功,终端用户就可以使用它们的身份去访问其他OpenStack服务。比如,其他服务利用Identity 来确保用户的真实性并且可以来发现其他服务在部署中的位置。Identity 服务也可以集成其他外置的用户管理系统(比如 LDAP)
 
用户和服务能够通过服务目录(被Identity 管理)定位其他服务。顾名思义,服务目录就是在整个OpenStack部署中可用的服务的集合。每一个服务可以有一个或者多个终端,每个终端都有一个类型,总共三种类型:admin,internal,public。在生产环境中,处于安全考虑,不同终端类型可能出在独立的网络中暴露给不同类型的用户。比如,public API的网络应该从Internet可以看见,这样用户就可以管理他们自己的云。admin API 的网络应该局限于组织内部来管理云平台基础架构。同时,OpenStack支持多区域的拓展性。区域,服务,端点共同形成了部署的服务目录。
 
Identity 服务包含三个部分:
Server: 一个集中服务端提供认证和授权服务,使用RESTful 接口
Drivers:驱动或者服务后端被集成到中心服务端。他们被用来访问存在OpenStack外部或者已经部署到OpenStack中的仓库中,比如关系数据库。
Modules:中间件模块运行在OpenStack使用Identity服务的组件的地址空间。这些模块拦截服务请求,提取用户身份,并把这些信息发送到中心服务端去授权。中间件和各个OpenStack组件使用WSGI来通信。
 
2.  keystone 基本概念介绍
1). User
   User可简单的理解为用户,用户携带信物(token)能够访问openstack各个服务和资源。
2). Tenant
  Tenant即租户,早期版本又称为project,它是各个服务中的一些可以访问的资源集合。比如通过nova创建虚拟机时要指定到某个租户中,在cinder创建卷也要指定到某个租户中。用户访问租户的资源前,必须与该租户关联,并且指定该用户在该租户下的角色。
3). Role
  Role即角色,可以理解为VIP等级,用户的Role越高,在openstack中能访问的服务和资源就更多。
4). Service
  Service即服务,如Nova、Glance、Swift、heat、ceilometer等。Nova提供云计算的服务,Glance提供镜像管理服务,Swift提供对象存储服务,heat提供资源编排服务,ceilometer则是提供告警计费服务,cinder提供块存储服务。
5). Endpoint
  Service的显得太抽象笼统。Endpoint则具体化Service。Endpoint翻译为“端点”,我们可以理解它是一个服务暴露出来的访问点,如果需要访问一个服务,则必须知道他的endpoint,而endpoint一般为url,我们知道了服务的url,我们就可以访问它。Endpoint 的url具有public、private和admin这三种权限。public url可以被全局访问,private url只能被局域网访问,admin url被从常规的访问中分离。
6).  Token
       Token即是信物、令牌,用户通过用户名和密码获取在某个租户下的token,通过token,可以实现单点登录。
7)    Credentials
       该术语可以简单的理解为用户和密码。
       该文的理解,通俗的说:
  如果把宾馆比作为Tenant,住宿的人就是User ,而宾馆就是 Tenant,宾馆可以提供多种诸如住宿、娱乐、饮食等多种服务(Service),具体来说,住宿是一种具体的服务(Endpoint)。就住宿而言,有普通间和总统套房,如果你的VIP等级(Role)高,你可以享受到豪华的总统套房。入住前,我们需要拿身份证开房(Credential),认证身份证不是冒牌货后(Authenticaiton),会给你一个房卡(Token),然后你拿着房卡,就可以进入房间和享受各种服务。
User
住宾馆的人
Credentials
身份证
Authentication
认证你的身份证
Token
房卡
Tenant
宾馆
Service
宾馆可以提供的服务类别,比如,饮食类,娱乐类
Endpoint
具体的一种服务,比如吃烧烤,打羽毛球
Role
VIP 等级,VIP越高,享有越高的权限
 
3.  keystone 的访问流程
以创建一个虚拟机(server)为例,结合下图简述下keystone在openstack的访问流程。
  1. 用户Alice通过自己的户名和密码向keystone申请token,keystone认证用户名和密码后,返回token1
  2. Alice通过token1发送keystone查询他所拥有的租户,keystone验证token1成功后,返回Alice的所有Tenant
  3. Alice选择一个租户,通过用户名和密码申请token,keystone认证用户名、密码、tenant后,返回token2。(其实1、2步仅仅是为了查询tenant,如果已经知道tenant,可以忽略1、2步)
  4. Alice通过token2发送创建server的请求,keystone验证token2(包括该token是否有效,是否有权限创建虚拟机等)成功后,然后再把请求下发到nova,最终创建虚拟机
 
 

openstack学习心得:keystone 架构、概念、访问流程的更多相关文章

  1. openstack学习心得:glance 架构、概念、后端存储配置方式

    glance 架构 glance 服务概述 Image 服务 使得用户可以发现.注册.检索虚拟机镜像.它对外提供REST API使得你能够查询虚拟机镜像元数据和检索一个真实的镜像.你可以通过镜像服务将 ...

  2. openstack学习心得:keystone 常用命令(M版)

    查看用户列表 openstack user list 查看用户具体信息 usage: openstack user show [-h] [-f {html,json,json,shell,table, ...

  3. c语言数据结构学习心得——数据结构基本概念

    1.数据>数据元素>数据项      数据的基本单位是数据元素,数据元素的基本单位是数据项 2.运算的定义->针对逻辑结构 集合:同属于一个集合,无其他关系.(数学上的集合) 线性结 ...

  4. Shell学习心得(四):流程控制

    一.if else 1. if if 语句语法格式: if condition then command1 command2 ... commandN fi 写成一行(适用于终端命令提示符): ]; ...

  5. Openstack组件部署 — Keystone功能介绍与认证实现流程

    目录 目录 前文列表 Keystone认证服务 Keystone认证服务中的概念 Keystone的验证过程 简单来说 前文列表 Openstack组件部署 - Overview和前期环境准备 Ope ...

  6. 理解 Keystone 核心概念 - 每天5分钟玩转 OpenStack(18)

    作为 OpenStack 的基础支持服务,Keystone 做下面这几件事情: 管理用户及其权限 维护 OpenStack Services 的 Endpoint Authentication(认证) ...

  7. tomacat服务器上web资源访问流程、web应用打成war包发布、Context的reloadable属性、tomacat体系架构

    一.web资源访问流程 二.web应用打成war包发布到服务器 好处:打成war包发布到服务器,那么服务器会自动把它拆解成文件夹 jar命令是java自带的一个命令,如果之前配置过Java编译环境就可 ...

  8. OpenStack Keystone架构

    一. Keystone简介 1. OpenStack Keystone简介 2. Keystone安装与部署 2.1 包安装Keystone 2.2 源码安装源码安装 3 配置运行Keystone 3 ...

  9. openstack组件之keystone

    一 什么是keystone keystone是 OpenStack Identity Service 的项目名称.它在整个体系中充当一个授权者的角色. Keystone项目的主要目的是给整个opens ...

随机推荐

  1. URL不能过长,否则summit方法提交失败

    MVC5.0+EF6.0,和浏览器的版本有关系.IE最多1024KB. URL不能过长,否则summit方法提交失败.

  2. JFrame的层次结构以及背景颜色设置问题

    JFrame的层次结构: JFrame:窗体,也就是窗口的框架.默认为不可见.不透明的(可以使用isVisible和isOpaque来验证).创建窗口时,最后一步需要调用setVisible(true ...

  3. wpf值转换器IValueConverter例子

    转载:http://blog.163.com/wangzhenguo2005@126/blog/static/37140526201085113430862/ 值转换器可以把一种类型转换成另一种类型. ...

  4. J2EE走向成功路-01-Struts2 配置

    配置环境 1.  导入jar包,Struts2官网:http://struts.apache.org/ 2.  创建Action类  继承ActionSupport  (ActionSupport类是 ...

  5. [js高手之路]封装运动框架实战左右与上下滑动的焦点轮播图

    在这篇文章[js高手之路]打造通用的匀速运动框架中,封装了一个匀速运动框架,我们在这个框架的基础之上,加上缓冲运动效果,然后用运动框架来做幻灯片(上下,左右),效果如下: 1 2 3 4 5 // 0 ...

  6. swift实现与OC的混编

    swift与OC的混编 现在写swift,很多的类库还不是很全,很多的第三方还是只有OC版的,这个时候swift想用,通常都是采用的swift和OC混编的方式.这里给大家演示一下混编是如何做的. sw ...

  7. Java加密与解密笔记(一) Base64和数据摘要算法

    对加密解密下面的内容一定要先理解: 甲乙双方要通信,中间的连接可能被人窃听甚至篡改.解决办法就是把传输的内容进行加密,用密文去传输,这样即使被监听也没办法知道信息的具体内容. 加密时,甲乙双方可以约定 ...

  8. Git 工作流的正确打开方式

    前言 一直在使用git做版本控制,也一直工作很顺利,直到和别人发生冲突的时候.这才注意到git 工作流并不是那么简单.比如,之前遇到的清理历史.百度到的资料很多,重复性也很多,但实践性操作很少,我很难 ...

  9. SpringMVC 基本概念

    DispatcherServlet:前端控制器,解释用户请求,通过HandlerMapping查找对应Handler处理请求,调用ViewResolve回填页面,DispatcherServlet在W ...

  10. 长话短说 之 js的原型和闭包

    原型链:undefined, number, string, boolean 属于简单的值类型,函数.数组.对象.null.new obj()都是引用类型.检测值类型用typeof x 即可,检测引用 ...