openstack----Keystone身份服务

news/2024/7/18 14:19:37 标签: openstack

目录

  • Keystone是什么 ?
  • Keystone身份服务主要功能
  • Keystone管理对象
  • Keystone认证流程图
  • Keystone搭建

Keystone是什么 ?

Keystone(OpenStack Identity Service)是 OpenStack 框架中负责管理身份验证、服务规则和服务令牌功能的模块。用户访问资源需要验证用户的身份与权限,服务执行操作也需要进行权限检测,这些都需要通过 Keystone 来处理。Keystone类似一个服务总线, 或者说是整个Openstack框架的注册表, 其他服务通过keystone来注册其服务的Endpoint(服务访问的URL),任何服务之间相互的调用, 需要经过Keystone的身份验证, 来获得目标服务的Endpoint来找到目标服务。

Keystone身份服务主要功能

  • 身份认证(Authentication) :令牌的发放和校验
  • 用户授权(Authorization):授予用户在一个服务中所拥有权限
  • 用户管理(Account):管理用户账户
  • 服务目录(Service Catalog):提供可用服务的API端点

Keystone管理对象

在这里插入图片描述
User:即用户,他们代表可以通过keystone进行访问的人或程序。Users通过认证信息(credentials,如密码、API Keys等)进行验证。
在这里插入图片描述
Project(Tenant):即租户,它是各个服务中的一些可以访问的资源集合。例如,在Nova中一个tenant可以是一些机器,在Swift和Glance中一个tenant可以是一些镜像存储,在Quantum中一个tenant可以是一些网络资源。Users默认的总是绑定到某些tenant上。
在这里插入图片描述
Role:即角色,Roles代表一组用户可以访问的资源权限,例如Nova中的虚拟机、Glance中的镜像。Users可以被添加到任意一个全局的 或 租户内的角色中。在全局的role中,用户的role权限作用于所有的租户,即可以对所有的租户执行role规定的权限;在租户内的role中,用户仅能在当前租户内执行role规定的权限。
在这里插入图片描述
Service:即服务,如Nova、Glance、Swift。根据前三个概念(User,Tenant和Role)一个服务可以确认当前用户是否具有访问其资源的权限。但是当一个user尝试着访问其租户内的service时,他必须知道这个service是否存在以及如何访问这个service,这里通常使用一些不同的名称表示不同的服务。在上文中谈到的Role,实际上也是可以绑定到某个service的。例如,当swift需要一个管理员权限的访问进行对象创建时,对于相同的role我们并不一定也需要对nova进行管理员权限的访问。为了实现这个目标,我们应该创建两个独立的管理员role,一个绑定到swift,另一个绑定到nova,从而实现对swift进行管理员权限访问不会影响到Nova或其他服务。
在这里插入图片描述
Endpoint,翻译为“端点”,我们可以理解它是一个服务暴露出来的访问点,如果需要访问一个服务,则必须知道他的endpoint。因此,在keystone中包含一个endpoint模板(endpoint template,在安装keystone的时候我们可以在conf文件夹下看到这个文件),这个模板提供了所有存在的服务endpoints信息。一个endpoint template包含一个URLs列表,列表中的每个URL都对应一个服务实例的访问地址,并且具有public、private和admin这三种权限。public url可以被全局访问(如http://compute.example.com),private url只能被局域网访问(如http://compute.example.local),admin url被从常规的访问中分离。
在这里插入图片描述
Authentication:确定用户身份的过程。
在这里插入图片描述
Token:是一个字符串表示,作为访问资源的令牌。Token包含了在指定范围和有效时间内,可以被访问的资源。

Keystone认证流程图

在这里插入图片描述

  • 用户想创建一个实例,首先会将自己的credentials(资格证书)发给keystone。认证成功后,keystone会颁给用户一个临时的令牌(Token)和一个访问服务的Endpoint。 PS:Token没有永久的
  • 用户 把临时Token提交给keystone,keystone并返回一个Tenant(Project)
  • 用户 向keystone发送带有特定租户的凭证,告诉keystone用户/API在哪个项目中,keystone收到请求后,会发送一个项目的token到用户/API PS:第一个Token是来验证用户/API是否有权限与keystone通信,第二个Token是来验证用户/API是否有权限访问我keystone的其它服务。用户 拿着token和Endpoint找到可访问服务
  • 服务向keystone进行认证,Token是否合法,它允许访问使用该服务(判断用户中role权限)
  • keystone向服务提供额外的信息。用户是允许方法服务,这个Token匹配请求,这个Token是用户的
  • 服务执行用户/API发起的请求,创建实例
  • 服务会将状态报告给用户。最后返回结果,实例已经创建

Keystone搭建


http://www.niftyadmin.cn/n/569581.html

相关文章

OpenStack部署详细教程

目录项目环境控制节点设置计算节点1设置计算节点2设置控制节点安装MariaDB控制节点安装RabbitMQ控制节点安装memcached控制节点安装etcd一、安装OpenStack-keystone组件1.1、为keystone创建数据库实例和数据库用户1.2、安装、配置keystone、数据库、Apache1.3、初始化认证服务数…

Oenstack----Glance组件介绍

目录简介一、Glance两个版本二、 Glance主要功能三、镜像格式3.1、虚拟机镜像文件磁盘格式3.2、镜像文件容器格式四、镜像状态五、镜像的访问权限六、Glance架构图七、glance工作流程图简介 Glance是openstack的一个核心项目,它允许用户发现、注册和获取虚拟机镜像…

OpenStack上传镜像HTTP 500错误代码---让你少掉头发

错误现象 [rootct ~]# openstack image create --file cirros-0.4.0-x86_64-disk.img --disk-format qcow2 --container-format bare --public cirros HTTP 500 Internal Server Error: The server has either erred or is incapable of performing the requested operation.解…

OpenStack----nova计算服务介绍

目录简介一、nova主要组件二、nova架构图详解简介 1. Nova 是 OpenStack 最核心的服务,负责维护和管理云环境的计算资源。 OpenStack 作为 IaaS 的云操作系统,虚拟机生命周期管理也就是通过 Nova 来实现的。计算资源只是内存跟cpu。2. Nova自身并没有提…

自动化运维ansible入门篇

目录一、ansible简介二、ansible特点三、ansible基本架构四、ansible部署4.1基本环境4.2安装epel-release4.2安装ansible4.3修改ansible host配置文件4.4设置ansible免密登录两台node节点五、ansible命令基本用法5.1、ansible命令格式5.2、command模块5.3、cron模块5.4、user模…

自动化运维--ansible剧本操作

目录一、简介二、什么是YAML三、ansible-playbook介绍四、ansible-playbook使用教程4.1、给node1标签下的主机部署httpd服务4.2、ignore_errors忽略错误4.3、yaml文件执行报错不在继续执行4.4、多hosts操作4.2、yaml文件内定义变量4.6、命令行输入变量4.7、hosts文件定义变量4.…

ansible自动化运维两个重要模块

目录template模块安装配置httpd服务器tag标签模块1、执行指定标签对应的命令2、特殊标签template模块安装配置httpd服务器 基本环境 名称主机名P地址ansible服务器ansible20.0.0.10节点1server120.0.0.20节点2server220.0.0.30 # 在之前的部署基础上只修改了hosts文件 [roota…

k8s入门篇

目录简介ks8的主要功能k8s架构图及组件k8s核心概念PodControllersService简介 Kubernetes是Google在2014年开源的一个容器集群管理系统,Kubernetes简称K8S。K8S用于容器化应用程序的部署,扩展和管理。K8S提供了容器编排,资源调度&#xff0c…