OpenStack核心组件之Keystone 门卫大爷放我进去吧QAQ

Keystone(身份验证服务)简介

一、前言

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

二、keystone的功能

  • 为用户提供登录时的身份验证
  • 为用户分配角色,根据角色给予用户不同的权限
  • 为成功登入的用户发放令牌,在请求服务时 会附加令牌,以获取授权
  • 所有加入OpenStack的组件提供注册,并生成组件列表(注册表)
  • 根据服务列表,为所有服务提供endpoint和api指路
  • 所有服务收到请求后,都会先行询问keystone,该服务提供的令牌是否合法
  • 因为项目与项目之间有着访问权限限制,所以keystone也具有隔离每个项目的功能

三、keystone中的相关概念

1.user:User即用户,指的是使用openstack service的用户,可以是人,服务,系统,就是说只要是访问openstack service 的对象都可以称为User

2.Credentials:是用于确认用户身份的凭证。说白了就是“信物”,可以是:

(1):用户名和密码

(2):用户名跟API Kye(秘钥)

  • 用户第一次确认身份的方法

(3):一个keystone分配的身份的token          
    用户已经确认身份后的方法 (token是有时间限制的)

3.Authentication:

(1):用户身份验证的过程。keystone服务通过检查用户的Credentials来确定用户的身份

(2):第一次验证身份是使用用户名与密码或者用户名与API Key的形式。当用户的Credentials被验证后,keystone会给用户分配一个Authentication token 供该用户的后续请求操作(返回的token中就包含User的Role列表)

4.Token

(1):是一串数字字符串,当用户访问资源时需要使用的东西,在keystone中主要是引入令牌机制来保护用户对资源的访问,同时引入PKI、PKIZ、fernet、UUID其中一个随机加密产生一串数字,对令牌加以保护

(2):token并不是长久有效的,是有时效性的,在有效的时间内可以访问资源。

5.Role:

(1):本身是一堆ACL集合,主要用于权限的划分。

(2):可以给User指定Role,是user获得role对应的操作权限。

(3):系统默认使用管理Role的角色 管理员用户:admin 普通用户:member(老版本) user(新版本)

(5):user验证的时候必须带有Project。老版本叫(Tenant)

四、keystone的工作流程

  • 在整个OpenStack体系中扮演着一个类似门卫大爷的角色(我们将keystone比喻为一个门卫大爷,服务组件是公司内的员工,用户是客户),客户要进入公司办理业务,门卫先会先验证客户的身份并登记,然后会为其发放访客证(令牌),而且门卫大爷这也有公司各个部门的电话和地址(注册表),会为客户指引前往前台(nova),到了前台 客户会出示门卫发放的令牌以表明身份,此时前台会打电话询问门卫次令牌是否合法,

流程图如下:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值