OpenStack

您所在的位置:网站首页 凭证和令牌的区别在哪 OpenStack

OpenStack

2024-07-13 18:50| 来源: 网络整理| 查看: 265

Keystone认证原理 前言keystone简介功能Keystone架构结构图详解

前言

Keystone实现始终围绕着Keystone所实现的功能来展开,所以在理解其实现之前,建议大家尝试通过安装Keystone这一个过程来感受Keystone在Openstack架构中所充当的角色。

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

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

Keystone架构 User:指使用Openstack service的用户,可以是人、服务、系统,但凡使用了Openstack service的对象都可以称为User。 Project(Tenant):可以理解为一个人、或服务所拥有的 资源集合 。在一个Project(Tenant)中可以包含多个User,每一个User都会根据权限的划分来使用Project(Tenant)中的资源。比如通过Nova创建虚拟机时要指定到某个Project中,在Cinder创建卷也要指定到某个Project中。User访问Project的资源前,必须要与该Project关联,并且指定User在Project下的Role。 Role:用于划分权限。可以通过给User指定Role,使User获得Role对应的操作权限。Keystone返回给User的Token包含了Role列表,被访问的Services会判断访问它的User和User提供的Token中所包含的Role。系统默认使用管理Role admin和成员Role _member_ 。 Policy:OpenStack对User的验证除了OpenStack的身份验证以外,还需要鉴别User对某个Service是否有访问权限。Policy机制就是用来控制User对Tenant中资源(包括Services)的操作权限。对于Keystone service来说,Policy就是一个JSON文件,默认是/etc/keystone/policy.json。通过配置这个文件,Keystone Service实现了对User基于Role的权限管理。 Token:是一个字符串表示,作为访问资源的令牌。Token包含了在 指定范围和有效时间内 可以被访问的资源。EG. 在Nova中一个tenant可以是一些虚拟机,在Swift和Glance中一个tenant可以是一些镜像存储,在Network中一个tenant可以是一些网络资源。Token一般被User持有。 Credentials:用于确认用户身份的凭证 Authentication:确定用户身份的过程 Service:Openstack service,即Openstack中运行的组件服务。 Endpoint:一个可以通过网络来访问和定位某个Openstack service的地址,通常是一个URL。比如,当Nova需要访问Glance服务去获取image 时,Nova通过访问Keystone拿到Glance的endpoint,然后通过访问该endpoint去获取Glance服务。我们可以通过Endpoint的region属性去定义多个region。Endpoint 该使用对象分为三类: admin url –> 给admin用户使用,Post:35357 internal url –> OpenStack内部服务使用来跟别的服务通信,Port:5000 public url –> 其它用户可以访问的地址,Post:5000 public url可以被全局访问,private url只能被局域网访问,admin url被从常规的访问中分离。 结构图

在这里插入图片描述

在这里插入图片描述

详解

用户通过命令行或者horizon控制面板的方式登录openstack,凭借自己的证书(credentials)给keystone验证。Keystone对用户的证书验证,验证通过则会发布一个令牌(token)和用户所需服务的位置点(endpoint)给用户。用户得到了位置点(endpoint)之后,携带自己的令牌,向nova发起请求,请求创建虚拟机。nova会拿着用户的token向keystone进行认证,看是否允许用户执行这样的操作。keystone认证通过之后,返回给nova,nova即开始执行创建虚拟机的请求。首先需要镜像资源,nova带着令牌(token)和所需要的镜像名向glance提出镜像资源的请求。glance会拿着token去向keystone进行认证,看是否允许提供镜像服务。keystone认证成功后,返回给glance。glance向nova提供镜像服务。创建虚拟机还需要网络服务,nova携带token向neutron发送网络服务的请求neutron拿着nova给的token向keystone进行认证,看是否允许向其提供网络服务。keystone认证成功后,返回给nuetron。nuetron则给nova提供网络规划服务。nova获取了镜像和网络之后,开始创建虚拟机,通过hypervisior可调用底层硬件资源进行创建。创建完成返回给用户,成功执行了用户的请求。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3