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. java中需要注意的小细节

    很早以前就打算写博客,但是总是因为不知道写什么,或是觉得博客里其他人已经把我要写的整理很好了而迟迟没有动笔,现在决定把自己平时的记录的一些笔记拿出来,希望大神们可以批评指导,并且希望能够帮助一些刚刚入 ...

  2. Google Authenticator 如何集成(U盾的实现原理相同)

    Google Authenticator是一个类似U盾的二次验证工具,Google提供了它的开源客户端(https://github.com/google/google-authenticator)里 ...

  3. VS2017 编译 chromium和webrtc

    Chromium的编译和WebRTC的编译方式相同,WebRTC官网也是使用的Chromium的编译文档. 步骤一.跳 - 墙,先跳 - 墙这是第一步哟,chromium大概有10几个G,webrtc ...

  4. python Synchronization between processes

    进程间同步,可以使用lock进行控制. 官方文档的例子如下: from multiprocessing import Process, Lock def f(l, i): l.acquire() pr ...

  5. Java基础入门知识

    Java编程入门知识   知识概要: (1)Java入门基本常识 (2)Java的特性跨平台性 (3)Java的编程环境的搭建 (4)Java的运行机制 (5)第一个Java小程序入门 (1)Java ...

  6. js系列教程1-数组操作全解

    全栈工程师开发手册 (作者:栾鹏) 快捷链接: js系列教程1-数组操作全解 js系列教程2-对象和属性全解 js系列教程3-字符串和正则全解 js系列教程4-函数与参数全解 js系列教程5-容器和算 ...

  7. 【机器学习实战】第5章 Logistic回归

    第5章 Logistic回归 Logistic 回归 概述 Logistic 回归虽然名字叫回归,但是它是用来做分类的.其主要思想是: 根据现有数据对分类边界线建立回归公式,以此进行分类. 须知概念 ...

  8. Android 性能优化概念(1)

    http://www.open-open.com/lib/view/open1421723359718.html#_label0 阅读目录 0)Render Performance 1)Underst ...

  9. Pyhton编程(三)之Pycharm安装及运算符

    一:上节题目解答 1)使用while循环输出 1 2 3 4 5 6 8 9 10(注意:没有7) n=1while n<11: if n==7: pass //pass代码段指代空代码.. e ...

  10. fio2.1.10--README

    fio --- fio is a tool that will spawn a number of threads or processes doing a particular type of io ...