返回顶部
首页 > 资讯 > 后端开发 > Python >OpenStack Keystone V
  • 939
分享到

OpenStack Keystone V

OpenStackKeystone 2023-01-31 02:01:12 939人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

Http://www.ibm.com/developerworks/cn/cloud/library/1506_yuwz_keystonev3/index.html Keystone(OpenStack Identity Service)是

Http://www.ibm.com/developerworks/cn/cloud/library/1506_yuwz_keystonev3/index.html


Keystone(OpenStack Identity Service)是 OpenStack 框架中负责管理身份验证、服务规则和服务令牌功能的模块。用户访问资源需要验证用户的身份与权限,服务执行操作也需要进行权限检测,这些都需要通过 Keystone 来处理。Keystone V3 版本做出了许多变化和改进,引入了 Domain 和 Group 等新概念,本文将对 V3 版本的新功能进行介绍并通过实验进行演示。


Keystone V3 简介

Keystone 中主要涉及到如下几个概念:User、Tenant、Role、Token。下面对这几个概念进行简要说明。

  • User:顾名思义就是使用服务的用户,可以是人、服务或者是系统,只要是使用了 Openstack 服务的对象都可以称为用户。

  • Tenant:租户,可以理解为一个人、项目或者组织拥有的资源的合集。在一个租户中可以拥有很多个用户,这些用户可以根据权限的划分使用租户中的资源。

  • Role:角色,用于分配操作的权限。角色可以被指定给用户,使得该用户获得角色对应的操作权限。

  • Token:指的是一串比特值或者字符串,用来作为访问资源的记号。Token 中含有可访问资源的范围和有效时间。

下面通过图 1 来说明 Keystone 和其它 OpenStack 服务之间是如何交互和协同工作的。首先用户向 Keystone 提供自己的身份验证信息,如用户名和密码。Keystone 会从数据库中读取数据对其验证,如验证通过,会向用户返回一个 token,此后用户所有的请求都会使用该 token 进行身份验证。如用户向 Nova 申请虚拟机服务,nova 会将用户提供的 token 发给 Keystone 进行验证,Keystone 会根据 token 判断用户是否拥有进行此项操作的权限,若验证通过那么 nova 会向其提供相对应的服务。其它组件和 Keystone 的交互也是如此。

图 1. Keystone 与其它服务的交互

Keystone 与其它服务的交互

从以上过程可以看出,用户的角色管理在 Keystone 中是很重要的工作。在 Keystone V3 之前,用户的权限管理以每一个用户为单位,需要对每一个用户进行角色分配,并不存在一种对一组用户进行统一管理的方案,这给系统管理员带来了额外的工作和不便。此外,Keystone V3 之前的版本中,资源分配是以 Tenant 为单位的,这不太符合现实世界中的层级关系。如一个公司在 Openstack 中拥有两个不同的项目,他需要管理两个 Tenant 来分别对应这两个项目,并对这两个 Tenant 中的用户分别分配角色。由于在 Tenant 之上并不存在一个更高层的概念,无法对 Tenant 进行统一的管理,所以这给多 Tenant 的用户带来了不便。为了解决这些问题,Keystone V3 提出了新的概念 Domain 和 Group,本文将对 Keystone V3 的相关原理和配置进行介绍。

Keystone V3 api 新特性

Keystone V3 做出了许多变化和改进,我们选取其中较为重要的进行阐述:

  • 将 Tenant 改称为 Project

  • 引入 Domain 的概念

  • 引入 Group 的概念

将 Tenant 改为 Project 并在其上添加 Domain 的概念,这更加符合现实世界和云服务的映射。

V3 利用 Domain 实现真正的多租户(multi-tenancy)架构,Domain 担任 Project 的高层容器。云服务的客户是 Domain 的所有者,他们可以在自己的 Domain 中创建多个 Projects、Users、Groups 和 Roles。通过引入 Domain,云服务客户可以对其拥有的多个 Project 进行统一管理,而不必再向过去那样对每一个 Project 进行单独管理。

Group 是一组 Users 的容器,可以向 Group 中添加用户,并直接给 Group 分配角色,那么在这个 Group 中的所有用户就都拥有了 Group 所拥有的角色权限。通过引入 Group 的概念,Keystone V3 实现了对用户组的管理,达到了同时管理一组用户权限的目的。这与 V2 中直接向 User/Project 指定 Role 不同,使得对云服务进行管理更加便捷。

图 2. Domain、Group、Project、User 和 Role 的关系图

Domain、Group、Project、User 和 Role 的关系图

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

Keystone V3 API 调用

下面我们通过实例操作来演示 Keystone V3 API 的使用:当前 Openstack 中存在一个名为“default”的 Domain,和一个名为“test_Group”的 Group。我们要在“default Domain”中新建一个 Project,并在“test_Group”中添加一个用户“test_User”,然后将“test_Group”中的所有 User 指定为新建 Project 的某个 Role。

  1. 获取 token

    创建 JSON 文件填写必要的验证信息,token-request.json 文件中的内容如下所示:

    图 3. 获取 token 的验证信息

    获取 token 的验证信息

    用以上 JSON 文件申请 token 并将 token 写入环境变量“OS_TOKEN”中,以便之后的使用。

    图 4. 获取到的 token

    获取到的 token

  2. 创建 Project

    成功获得 token 之后,我们就可以用获取的 token 调用 Keystone V3 的 API 与 Keystone 进行交互了。我们可以新建一个 Project,将其命名为“test_Project”:



    图 5. 新建 Project

    查看当前所有的 Project 信息

    创建“test_Project”后,调用 api 查看当前的 Projects,可以看到 test_Project 已经被成功创建:

    图 6. 查看当前所有的 Project 信息

    查看当前所有的 Project 信息

  3. 在 Group 中添加 User

    首先查看当前所有的 Group:

    图 7. 查看当前所有的 Group 信息

    查看当前所有的 Group 信息

    查看所有的 User:

    图 8. 查看当前所有的 User 信息

    查看当前所有的 User 信息

    将名为“test_User”的 User 添加到名为“test_Group”的 Group 中

    图 9. 为 Group 添加 User

    为 Group 添加 User

  4. 为 Group 指定 Role

    查看当前所有的 Role:

    图 10. 查看当前所有的 Role 信息

    查看当前所有的 Role 信息

    将名为“admin”的 Role 指派给名为“test_Project”的 Project 中,名为“test_Group”的 Group:

    图 11. 为 Group 指定 Role

    为 Group 指定 Role

    查看“test_Project”中“test_Group”的 Role:

    图 12. 查看 Group 的 Role 信息

    查看 Group 的 Role 信息

    可以看到,已经成功为“test_Project”/“test_Group”指定了名为“admin”的 Role。

总结

本文对 Keystone 进行了简要的介绍,分析并阐述了 Keystone V3 版本的新功能,通过和老版本进行对比,指出了新功能的用途和优势。最后通过具体实例讲解了如何使用新添加的 Domain 和 Group 的功能。


--结束END--

本文标题: OpenStack Keystone V

本文链接: https://lsjlt.com/news/185649.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • OpenStack Keystone V
    http://www.ibm.com/developerworks/cn/cloud/library/1506_yuwz_keystonev3/index.html Keystone(OpenStack Identity Service)是...
    99+
    2023-01-31
    OpenStack Keystone
  • OpenStack、keystone组件
    一、部署OpenStack1、环境OS:CentOS6.5 X86_64各节点时间同步、能基于主机名通信,清空iptables,关闭SElinux,禁用WorkManager服务各节点的主机/etc/hos...
    99+
    2024-04-02
  • 3-openstack之keystone
    3.1 keystone       安装linux-node1上面3.2 配置源http://mirrors.aliyun.com/centos/7.2.1511/cloud/x86_64/openstack-newton/centos-...
    99+
    2023-01-31
    openstack keystone
  • openstack-o版安装keystone
    Keustone身份认证组件是openstack项目中默认的身份认证管理系统,所有的服务都需要keystone认证、根据用户的等级分配相应的权限。    那么我们现在...
    99+
    2024-04-02
  • OpenStack 认证服务 KeyStone [二]
    OpenStack 认证服务 KeyStone [二]OpenStack 认证服务 KeyStone [二]openstack 时间:2016年11月23日openstack认证服务Keystone 介绍K...
    99+
    2024-04-02
  • OpenStack 安装 Keystone的过程详解
    目录OpenStack 安装 Keystone1.OpenStack 官网2.KeyStone 概述3.安装 OpenStack packages4.Network Time Pro...
    99+
    2024-04-02
  • openstack云计算keystone架构怎么用
    本篇内容介绍了“openstack云计算keystone架构怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!keystone架构Keys...
    99+
    2023-06-30
  • OpenStack基础学习及keystone服务配置
    一、openstack基础学习OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。 OpenStack是一个开...
    99+
    2024-04-02
  • openstack云计算keystone架构源码分析
    目录keystone架构Keystone APIRouterServices(1) Identity Service(2) Resource Service(3) Assignmen...
    99+
    2024-04-02
  • OpenStack手动分布式部署Keystone的方法是什么
    这篇文章主要讲解了“OpenStack手动分布式部署Keystone的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“OpenStack手动分布式部署Keystone的方法是什么”吧...
    99+
    2023-07-05
  • openstack云计算组件keystone部署及操作使用技巧
    目录一 前言二 版本信息三 部署keystonestep 1:准备阶段step 2:部署mariadbstep 3:部署keystonestep 4:配置web server整合ke...
    99+
    2024-04-02
  • openstack云计算keystone组件工作流程及服务关系
    目录一 什么是keystone二 为何要有keystone三 keystone的功能四 keystone概念详解第一部分endpoint举例V3新增的概念:第二部分第三部分五 key...
    99+
    2024-04-02
  • openstack云计算keystone组件工作流程及服务关系是什么
    这篇文章主要介绍“openstack云计算keystone组件工作流程及服务关系是什么”,在日常操作中,相信很多人在openstack云计算keystone组件工作流程及服务关系是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作...
    99+
    2023-06-30
  • ceilmeter使用keystone
    官方文档的ceiimeter使用的keystone v2如果要使用v3 他的配置项是有问题的我的思路:用devstack一键安装,来学习配置devstack 默认也是用的keystone v2加几个参数KEYSTONE_TOKEN_FORM...
    99+
    2023-01-31
    ceilmeter keystone
  • keystone部署及操作
    目录一  版本信息二  部署keystone三  keystone操作四  验证五  创建脚本六  keystone使用套路总结一、版本信息&nb...
    99+
    2024-04-02
  • v$sql v$sqlarea v$sqltext
    这里做个笔记,纯属是加深印象: V$SQL lists statistics on shared SQL areas without the GROUP BY clause and contains one...
    99+
    2024-04-02
  • openstack(二)openstack组件详解
       小生博客:http://xsboke.blog.51cto.com             ...
    99+
    2024-04-02
  • openstack上
    公司部署 OpenStack 的 3 大原因:更高的运营效率、创新能力和成本节约环境:rhel7.2salt-master :172.25.33.250sa...
    99+
    2024-04-02
  • openstack下
    接上篇计算服务:安装配置控制节点:yum install openstack-nova-api openstack-nova-conductor \ &nb...
    99+
    2024-04-02
  • openstack tempest
    OpenStack Tempest is a testing framework for OpenStack cloud servi...
    99+
    2023-10-11
    openstack
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作