一 keystone简介

  • keystone(openstack identity service)是openstack框架中负责身份验证、服务规则和服务令牌的功能, 它实现了openstack的Identity API。
  • keystone类似一个服务总线,或者说是挣个openstack框架的注册表, 其他服务通过keystone来注册其服务的Endpoint(服务访问的URL),任何服务之间的相互调用,需要经过keystone的身份验证来获得目标服务的Endpoint来找到目标服务。

二 keystone基本概念介绍

2.1 名词解释

  • User
    User就是用户,它代表可以通过keystone进行访问的人或者程序。 User通过认证信息(credentials, 如用户名密码、API Keys等)进行验证。
  • Tenant
    Tenant就是租户。他是各个服务中一些可以访问的资源集合。例如:Nova中一个tenant可以使一些机器, 在Swift和Glance中一个tenant可以是一些镜像存储。user默认的总是绑定到某些tenant上。
  • Role
    Role就是角色。Role代表一组用户可以访问的资源权限。例如Nova中的虚拟机、Glance中的镜像。Users可以被添加到任意一个全局的或者租户内的角色中。在全局的role中,用户的role权限作用于所有的租户,也就是说所有的租户都有角色role所规定的权限;在租户内的role中,用户仅拥有租户内橘色规定的权限。
  • Policy
    OpenStack对User的验证除了OpenStack的身份验证以外,还需要鉴别User对某个Service是否有访问权限。Policy机制就是用来控制User对Tenant中资源(包括Services)的操作权限。对于Keystone service来说,Policy就是一个JSON文件,默认是/etc/keystone/policy.json。通过配置这个文件,Keystone Service实现了对User基于Role的权限管理
  • Service
    Service即服务,如Nova、Glance、Swift。根据前三个概念(User、Tenant、Role)一个服务可以确认当前用户是否具有访问其资源的权限。但是当一个User尝试着访问其租户内的Service时,他必须知道这个Service是否存在以及如何访问这个Service,这里通常用一些不同的名称表示不同的服务。在面提到的Role,实际上也是可以绑定到某个service。例如:当swift需要一个管理员权限的访问进行对象创建时,对于相同的role我们不一定需要对nova进行管理权限的访问。为了实现这个目标,我们应该创建两个role,一个绑定到swift,一个绑定到nova,从而实现对swift进行管理权限的访问但不会影响到nova或者其他服务。
  • Endpoint
    Endpoint,我们称之为“端点”,可以将之理解为一个服务爆楼出来的访问点,如果需要访问一个服务,则必须知道他的Endpoint。因此,在keystone中包含一个endpoint模板(endpoint template, 在安装keystone的时候我们可以再conf文件夹下看到这个文件),这个模板他拱了所有存在的服务endpoints信息。一个endpoint template包含一个URL列表,列表中的每个URL都对应一个服务实例的访问地址,并且具有public、private、admin这三种权限。public url可以被全局访问,private url只能被局域网访问, admin url被从常规的访问中分离。

2.2 概念含义举例说明

  keystone 里面的概念很多,有:User,Credentials,Authentication,Token,Tenant,Service,Endpoint,Role。在这么多概念中,其实最主要的就是 User 和 Tenant 。由于一些安全,服务问题,才引发了其它的概念。
  那什么叫做 User ,Tenant 呢?这里我举个比较好理解的例子。我们去宾馆住的时候,我们自己就相当于 User ,而宾馆就是 Tenant 。这是最简单的情况,宾馆值提供房间,我们只需要住房。
  随着后来生活物质等的提高,这种现象就变了。我们去宾馆住的时候,很多东西都不一样,比如,开房间要身份证,房间的钥匙是一个可以当卡刷的牌子,我们进出宾馆的时候需要用自己的钥匙来开启宾馆的大门;还有就是,宾馆不仅仅是用来住的了,它可以给我们提供饮食,娱乐,健身等各种服务;而且服务层次的不同,房间也不同,房间里面的配置豪华程度也不一样。在这种情况下,描述我们和宾馆之间的关系就复杂一些了,这就引发了一些新的概念。
  举完这个例子, keystone 中的各种概念就可以和例子中的事物相挂钩了。

概念 含义
OpenStack 宾馆
Keystone 中英管理系统
User 住宾馆的人
Credentials 旅客的身份证
Authentication 确定旅客身份的过程
Token 房卡(用身份证换临时房卡)
Service 宾馆可以提供的服务类别,比如大保健、洗浴等
Endpoint 服务提供场所的地址
Role VIP等级, VIP等级越高,拥有的权限越大

### 2.3 keytone与其他服务的交互过程

三 keystone V3的新特性

3.1 新特性

  • 将Tenant改成为Project
  • 引入Domain的概念
  • 引入Group的概念

3.2 新特性说明

3.2.1 Domin

  问题描述:在Keystone V2中,资源分配是以Tenant为单位的,这不太符合现实世界中的层级关系。如一个公司在 Openstack中拥有两个不同的项目,他需要管理两个Tenant来分别对应这两个项目,并对这两个Tenant中的用户分别分配角色。由于在Tenant之上并不存在一个更高层的概念,无法对 Tenant 进行统一的管理,所以这给多 Tenant 的用户带来了不便。
  
  答: V3 利用 Domain 的概念实现真正的多租户(multi-tenancy)架构,Domain 担任 Project 的高层容器。云服务的客户是 Domain 的所有者,他们可以在自己的 Domain 中创建多个 Projects、Users、Groups 和 Roles。通过引入 Domain,云服务客户可以对其拥有的多个 Project 进行统一管理,而不必再向过去那样对每一个 Project 进行单独管理。
  简而言之,Domain的引入是为了将多个Project进行封装,成为单一实体再交付给相应的一个客户使用

3.2.2 Group说明

  问题描述:在 Keystone V2中,用户的权限管理是以每一个用户为单位,需要对每一个用户进行角色分配,并不存在一种对一组用户进行统一管理的方案,这给系统管理员带来了额外的工作和不便。
  
  答: V3引入了Group的概念,Group 是一组 Users 的容器,可以向 Group 中添加用户,并直接给 Group 分配角色,那么在这个 Group 中的所有用户就都拥有了 Group 所拥有的角色权限。通过引入 Group 的概念,Keystone V3 实现了对用户组的管理,达到了同时管理一组用户权限的目的。这与 V2 中直接向 User/Project 指定 Role 不同,使得对云服务进行管理更加便捷。
  类比操作系统中的用户组,是批量便捷操作的体现

3.3 V3的组织结构

  一个 Domain 包含有 3 个 Project,可以通过 Group1 将 Role Sysadmin直接赋予 Domain1,那么 Group1 中的所有用户将会对 Domain1 中的所有 Projects 都拥有管理员权限。也可以通过 Group2 将 Role Engineer 只赋予 Project3,这样 Group2 中的 User 就只拥有对 Project3 相应的权限,而不会影响其它 Projects。

keystone介绍相关推荐

  1. OpenStack之Keystone模块

    一.Keystone介绍 OpenStack Identity(Keystone)服务为运行OpenStack Compute上的OpenStack云提供了认证和管理用户.帐号和角色信息服务,并为Op ...

  2. 【N版】openstack——认证服务keystone(三)

    [N版]openstack--认证服务keystone 一.keystone介绍 1.1keystone Keystone(OpenStack Identity Service)是 OpenStack ...

  3. OpenStack组件——Keystone身份认证

    1.keystone介绍 keystone 是OpenStack的组件之一,用于为OpenStack家族中的其它组件成员提供统一的认证服务,包括身份验证.令牌的发放和校验.服务列表.用户权限的定义等等 ...

  4. openstack--3--控制节点安装配置keystone

    Keystone介绍 Keystone作用 用户与认证:用户权限与用户行为跟踪: 服务目录:提供一个服务目录,包括所有服务项与相关Api的端点,它是个注册中心 用户认证包括:User,Tenant,T ...

  5. 金蝶osf接口开发_GitHub - terminiter/osf-openstack-training

    ##项目说明 本项目主要用于开源力量<OpenStack应用实战解析及开发入门> 在线培训同步课程使用,请勿私自用于商业用途,欢迎个人随意转载,但是请保留源作者版权信息. ##目录说明 c ...

  6. 云计算(虚拟化)面试宝典

    一:服务器虚拟化 1.名词解释 (1)资源动态调整(对象是虚拟机) 管理员操作,对CPU.内存.网卡.硬盘.GPU进行调整. FusionCompute支持虚拟机资源动态调整,用户可以根据业务负载动态 ...

  7. 传统公司部署OpenStack(t版)简易介绍(二)——Keystone组件部署

    传统公司部署OpenStack(t版)简易介绍(二)--Keystone组件部署 一.OpenStack组件安装的顺序 二.创建数据库实例和数据库用户(ct控制节点) 三.安装.配置keystone. ...

  8. OpenStack介绍说明、OpenStack架构说明、OpenStack核心服务详细说明【keystone,nova,cinder,neutron...】、OpenStack创建VM,服务间交互示例

    文章目录 OpenStack介绍说明 OpenStack起源 认识openstack[重要] OpenStack架构说明 OpenStack架构概览 OpenStack逻辑架构 OpenStack生产 ...

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

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

最新文章

  1. 黄聪:NaviCat通过Http方式连接服务器的MySQL数据库(转)
  2. 【C/C++】头文件包含之#include的2种用法区别
  3. Asp将查询结果导出到excel里
  4. Java黑皮书课后题第6章:6.10(使用isPrime方法)程序清单6-7提供了测试某个数字是否是素数的方法isPrime(int number)。使用这个方法求小于10000的素数的个数
  5. java点击关闭弹出窗口_java – JPopupMenu在子弹出窗口打开时关闭
  6. 华为手机怎么下载linux命令,在linux命令
  7. iphone怎么重启_iPhone看完这个都要卡死机!这串神秘代码,是真的有毒
  8. matlab2014b linux,matlab 2014b linux 肿么安装
  9. 国家气象数据中心网站
  10. 特征选择 | MATLAB实现特征变量相关性系数图和显著性检验
  11. matlab 外接圆,【外接圆matlab知道三个顶点的坐标,如何求这三个顶点组成的三角形外接圆的半径与圆心坐标?】作业帮...
  12. 小学听力测试英语软件,你知道有哪些软件适合给小学生练习在线英语听力吗?...
  13. php7isapi,Windows7 IIS7下以FastCgi和ISAPI方法安装配置PHP5教程
  14. 基于GetData和ArcGIS的地图数字化教程
  15. 英语词根词缀记忆法(全集)_你竟然还在用词根词缀背单词?智橡树英语教你音标和音节秒记法...
  16. python条形码识别_使用Python和OpenCV在视频中实时监测条形码
  17. 2019.12.31大一练习赛
  18. 二叉树的创建以及先中后序遍历
  19. Unity学习笔记(4)-----粒子效果的实现
  20. java 中文编码乱码_Java编码问题复习

热门文章

  1. 一键部署LNMP服务
  2. 计算机毕业设计asp.net学生成绩管理信息系统(源码+系统+mysql数据库+Lw文档)
  3. PinPoint使用手册
  4. consul--基础--04--命令
  5. 电视android怎么连接手机助手,微鲸助手怎么连电视 微鲸助手连接使用说明
  6. 计算机网络的发展热点,计算机网络发展趋势(热点).ppt
  7. PHP处理微信昵称emoji方法
  8. 大地坐标BLH转平面坐标xyh(高斯投影坐标正算) Java版
  9. CSS3弹性盒布局方式
  10. 系统提权之:Windows 提权