openstack部件Keystone

Keystone

1.身份服务

1.1简介

  • Keystone(OpenStack Identity Service)是OpenStack中的一个独立的提供安全认证的模块,主要负责openstack用户的身份认证、令牌管理、提供访问资源的服务目录、以及基于用户角色的访问控制。
  • Keystone类似一个服务总线,或者说是整个OpenStack框架的注册表,其他服务通过keystone来注册其服务的Endpoint(服务访问的URL),任何服务之间相互调用,需要经过Keystone的身份验证,来获得目标服务的Endpoint来找到目标服务。

1.2主要功能

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

2.相关组件

相关概念

2.1User

OpenStack最基本的用户。

User即用户,他们代表可以通过keystone进行访问的人或程序。Users通过认证信息(credentials,如密码、API
Keys等)进行验证。

2.2Project(Tenant)

指分配给使用者的资源的集合。

Tenant即租户,它是各个服务中的一些可以访问的资源集合。例如,在Nova中一个tenant可以是一些机器,在Swift和Glance中一个tenant可以是一些镜像存储,在Neutron中一个tenant可以是一些网络资源。Users默认的总是绑定到某些tenant上。

2.3Role

Role即角色,Roles代表一组用户可以访问的资源权限,例如Nova中的虚拟机、Glance中的镜像。Users可以被添加到任意一个全局的或租户的角色中。在全局的role中,用户的role权限作用于所有的租户,即可以对所有的租户执行role规定的权限;在租户内的role中,用户仅能在当前租户内执行role规定的权限。

2.4Authentication

是一个字符串表示,作为访问资源的令牌。Token包含了在指定范围和有效时间内,可以被访问的资源

2.5Credentials

用于确认用户身份的凭证。用户的用户名和密码,或者是用户名和API密钥,或者身份管理服务提供的认证令牌

2.6Service

Service即服务,如Nova、Glance、Swift。根据前三个概念(User,Tenant和Role)一个服务可以确认当前用户是否具有访问其资源的权限。但是当一个user尝试着访问其租户内的service时,他必须知道这个service是否存在以及如何访问这个service,这里通常使用一些不同的名称表示不同的服务。

2.7Endpoint

服务的URL路径,暴露出来的访问点。

Endpoint,翻译为“端点”,我们可以理解它是一个服务暴露出来的访问点,如果需要访问一个服务,则必须知道他的endpoint。因此,在keystone中包含一个endpoint模板,这个模板提供了所有存在的服务endpoints信息。一个endpoint template包含一个URLs列表,列表中的每个URL都对应一个服务实例的访问地址,并且具有public、private和admin这三种权限。public url可以被全局访问,private url只能被局域网访问,admin url被从常规的访问中分离。

Endpoint分为三类:

  • admin url —>管理员用户使用 Port:35357
  • internal url —>openstack内部组件间互相通信 Port:5000 (组件之间通信基于Restful api)
  • public url —> 其他用户访问地址 Port:5000

2.8Domain

定义管理边界,可以包含多个project,user,role.

2.9Token

Token是访问资源的钥匙。它是通过Keystone验证后的返回值,在之后的与其他服务交互中只需要携带Token值即可。每个Token都有一个有效期,Token只在有效期内是有效的。

2.10Policy

OpenStack对User的验证除了OpenStack的身份验证以外,还需要鉴别User对某个Service是否有访问权限。Policy机制就是用来控制User对Tenant中资源(包括Services)的操作权限。对于Keystone service来说,Policy就是一个JSON文件,默认是/etc/keystone/policy.json。通过配置这个文件,Keystone Service实现了对User基于Role的权限管理。

3.认证流程

在这里插入图片描述

1.user使用命令或控制台登录,需要先将自己的资格证书发给keystone,认证成功后,keystone会给与用户一个临时令牌和一个访问服务的端点

2.user把临时的令牌交给keystone,发送创建虚拟机请求,nova收到令牌后,会向拿着令牌向keystone确认合法性,keystone认证成功后返回给nova

3.nova创建虚拟机需要镜像,所以拿着请求镜像服务的令牌给与glance服务,glance收到令牌后拿着令牌向keystone认证合法性,keystone认证成功后返回给glance,此时glance服务将nova所请求的镜像给与nova

4.nova创建虚拟机需要虚拟网络,所以向neutron发出请求,neutron收到nova给与的令牌向keystone认证合法性,是否可用,keystone认证成功后返回给neutron,随即neutron给与nova提供所需的网络服务
neutron收到nova给与的令牌向keystone认证合法性,是否可用,keystone认证成功后返回给neutron,随即neutron给与nova提供所需的网络服务,neutron收到nova给与的令牌向keystone认证合法性,是否可用,keystone认证成功后返回给neutron,随即neutron给与nova提供所需的网络服务

5.最后nova服务开始创建vm虚拟机,创建完成后返回信息给user: the vm is create sucessfull

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值