首页 > 其他分享 >1.3认证管理Keystone

1.3认证管理Keystone

时间:2023-07-11 23:32:22浏览次数:42  
标签:令牌 1.3 验证 用户 Nova 认证 Token Keystone

1、简介

定位:Keystone属于共享服务层,为OpenStack其他项目提供认证

交互关系:没有依赖服务

基本概念:

1.3认证管理Keystone_认证管理

2、作用6个

Keystone作为OpenStack中一个独立的提供安全认证的模块,主要负责OpenStack用户的身份认证、令牌管理、提供访问资源的服务目录,以及基于用户角色的访问控制用户访问系统的用户名和密码是否正确,令牌的发放,服务端点的注册,以及该用户是否具有访问特定资源的权限等都离不开Keystone服务的参与。

ldentity: 身份服务,提供身份验证凭证及有关用户和用户组数据

Token: 令牌,Keystone在确认用户的身份后,会给用户提供一个核实身份且可以用于后续资源请求的令牌。

Catalog: 对外提供一个服务的查询目录,服务目录存储了OpenStack所有服务的Endpoint信息。

Policy: 安全策略或者访控制,一个基于规则的身份验证引擎,通过配置文件来定义各种动作与用户角色的匹配关系。

Resource: 提供关于Domain和Proiect的数据

Assignment: 提供关于Role和Role Assignment的数据,负责角色授权。

3、架构

1.3认证管理Keystone_认证管理_02

1.3认证管理Keystone_认证管理_03

4、对象模型

1.3认证管理Keystone_认证管理_04

1.3认证管理Keystone_认证管理_05

1.3认证管理Keystone_认证管理_06

1.3认证管理Keystone_认证管理_07


5、工作原理--基于令牌、外部、本地认证

1.3认证管理Keystone_认证管理_08

1.3认证管理Keystone_认证管理_09

1.3认证管理Keystone_认证管理_10

1.3认证管理Keystone_认证管理_11

1.3认证管理Keystone_认证管理_12

这个过程看似与UUID一样,但是其实是有区别的,UUID由于没有加密和解密过程Keystone在生成token之后要本地缓存Token,方便后面验证。但是Fernet进行对等验证,无需缓存token,每次验证只需要进行解密验证即可,无需持久化存储,大小也合适,比较适合多数据中心的场景。

1.3认证管理Keystone_认证管理_13

从安全的角度上看,UUID无需维护密钥,PKI需要妥善保管Keystone server上的私钥,Fernet需要周期性的更换密钥。

因此从安全、维护成本和成熟度上看,UUID > PKI/PKIZ > Fernet 。如果:

Keystone server 负载低,region少于3个,采用UUID令牌0

Keystone server 负载高,region少于3个,采用PKI/PKIZ令牌。0

Keystone server 负载低,region大与或等于3个,采用UUID令牌0

Keystone server 负载高,region大于或等于3个,目前OpenStack新版本默认0采用Fernet令牌。

6、工作流程

1.3认证管理Keystone_认证管理_14

首先用户需要使用OpenStack,第一步就要向Keystone提供用户名密码来获取Token.当用户获取Token后,需要向Nova发送创建虚拟机请求,Nova负责调用计算资源并管理虚拟机的生命周期,所以这个创建请求要发送到Nova。请求的Head中会携带Token,当Nova-api接收到请求后,会将Token传递到Keystone进行验证是否有效合法。当验证成功后返回信息给Nova,Nova才开始进行创建VM操作。这边不具体介绍Nova如何操作,但是我们知道创建一台虚拟机,不仅需要准备CPU、内存等计算资源,还要有相应的网络、存储等资源,这里以网络资源为例,Nova-api将token透传给Nova-compute,Nova-compute会向Neutron-server发送与网络相关操作请求请求Head中也携带Token,Neutron收到请求后也会将Token传递到Keystone验证验证成功才执行相应操作。

7、各服务操作权限控制的实现--基于RBAC的Policy

1.3认证管理Keystone_认证管理_15

1.3认证管理Keystone_认证管理_16

Policy模块在检测时需要三方面的数据,第一个是policyjson策略配置文件,保存在服务配置目录下,第二个是auth token添加到http头部的token数据,就是前面说到的基于令牌认证中的那些令牌数据。还有用户请求数据,到底请求哪些内容

在图中实例policy.ison文件中,定义了all admin包含了哪些角色,admin和internal admin。定义了list project针对all admin的具体规则,create project时需要admin角色。

在处理的过程中,验证Token有效性,根据用户的请求信息到policy.json策略配置文件验证其用户是否有对应角色和权限

1.3认证管理Keystone_认证管理_17

首先用户发送基本信息给Keystone,一般是用户名和密码。Keystone经过验证后会返回一个Token给用户,用户向Nova发送创建虚拟机请求,并携带Token信息,nova接收到请求后,会拿着Token去Keystone进行验证,验证成功后开始执行创建VM操作,Nova会向Glance发送申请镜像信息并携带Token,会向Neutron发送申请网络信息也会携带Token,Glance和Neutron组件接收到请求后,都会向Keystone验证Token的有效性(图中仅用了一条线表示,请注意理解 ),验证通过即执行相应的操作,返回完成信息,当VM创建完成后,Nova返回创建成功信息给用户,用户即可使用虚拟机。

8、缩略语

·LDAP: Lightweight Directory Access Protocol,轻型目录访问协议,是一个开放的、中立的,工业标准的应用协议,通过IP协议提供访问控制和维护分布式信息的目录信息。

SAML: Security Assertion Markup Language,安全断言标记语言,是一个基于XML的开源标准数据格式,它在当事方之间交换身份验证和授权数据,尤其是在身份提供者和服务提供者之间交换。

SQL: Structured Query Language,结构化查询语言,是一种特殊目的的编程语言,是种数据库查询和程序设计语言,用于存取数据及查询、更新和管理关系数据库系统。

CRUD: 指在做计算处理时的增加(Create)、检索(Retrieve)、更新(Update)和删除(Delete)几个单词的首字母简写。crud主要被用在描述软件系统中数据库或者持久层的基本操作功能。

UUID: Universally Unique ldentifier,通用唯一识别码,是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。PKI: Public Key lnfrastructure,公钥基础设施,是一个包括硬件、软件、人员、策略和规程的集合,用来实现基于公钥密码体制的密钥和证书的产生、管理、存储、分发和撤销等功能。

标签:令牌,1.3,验证,用户,Nova,认证,Token,Keystone
From: https://blog.51cto.com/u_16092442/6693346

相关文章

  • MqttNet version 4.1.3.563 Basic example
    @@mqttnet4.1.4Theformalenvironmentcannotreceivemessages  Reportthisad1Following this exampleIhavenowthereforebeenrequiredtoupdatetheMQTT.NETfromversion3(thatworksthankstheprovidedhelp)toversion4.Averybasic......
  • window程序的签名证书,都需要第三方权威机构的认证(都需要联网进行签名)
    Window签名的RSA算法:通过公钥与私钥来判断私钥的合法。公钥与私钥具有对称性,既可以通过私钥加密,公钥解密,以此来论证私钥持有者的合法身份。也可以通过公钥加密,私钥解密,来对私钥持有者发信息而不被泄露。由于在交换公钥时免不了遭遇中间人劫持,因此window程序的签名证书,都需要第三......
  • 2023最新版本WebStrom安装教程【2023.1.3】
    前言本文方法可以安装使用截止当前2023.1.3最新版本WebStrom,过程非常简单,按照下面的步骤来一分钟即可搞定。1.下载安装已经安装过的可以跳过该步骤!下载到官网地址下载正版安装包JetBrainsWebStrom官网下载地址安装开始安装选择安装路径桌面快捷方式勾选创建妆......
  • 2023年7月杭州/北京/深圳DAMA-CDGP数据治理专家认证
    DAMA认证为数据管理专业人士提供职业目标晋升规划,彰显了职业发展里程碑及发展阶梯定义,帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力,促进开展工作实践应用及实际问题解决,形成企业所需的新数字经济下的核心职业竞争能力。DAMA是数据管理方面的认证,帮助数据从业者提升......
  • OSPF报文更新机制与认证机制
    OSPFOSPF更新机制定时更新默认情况下,产生这条LSA的路由器每隔1800S,会更新自身产生的LSA触发更新当产生这条LSA的路由器发现这条LSA的参数发生了变化,会触发更新OSPF协议如何删除一条LSA发送一条LSU,其中seq不变,chksum不变,将Lsage设置为3600OSPF认证区域认证......
  • http 和 https区别,自动携带cookie的session对象,响应response,下载图片视频到本地,编码
    1.1自动携带cookie的session对象#session对象----》已经模拟登录上了一些网站---》单独把cookie取出来 -res.cookies-转成字典res.cookies.get_dict()#请求头和数据importrequestsheader={'Referer':'http://www.aa7a.cn/user.php?&ref=http%3A%2F%2......
  • Linux中Postfix邮件认证配置(五)
    摘自:http://www.ywnds.com/?p=1784Postfix+Dovecot+Sasl工作原理1.A用户使用MUA客户端借助smtp协议登陆smtpd服务器,需要先进行用户和密码认证,而SMTPD服务器端支持sasl认证,例如有一个sasl客户端,就会去连接SASL。当SASL接受到验证请求时就会根据验证方式去进行验证,常用的有PAM,pass......
  • WEB API 添加jwt认证后,跨域失效问题
    WEBAPI添加jwt认证后,跨域失效问题跨域配置策略如下://添加跨域策略builder.Services.AddCors(options=>{options.AddPolicy("CorsPolicy",opt=>opt.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod().WithExposedHeaders("......
  • CDMP国际数据治理认证训练营来了(7-8月)
    大家好,我是独孤风,一位曾经的港口煤炭工人,目前在某国企任大数据负责人,公众号大数据流动主理人。在最近的两年的时间里,因为公司的需求,还有大数据的发展趋势所在,我开始学习数据治理的相关知识。经过一段时间的努力,我也终于通过了CDMP国际数据治理认证考试。离我研究生开学还有两个......
  • Vue + Volo.Abp 实现Auth2.0客户端授权模式认证
    @目录注册ClientAuth2.0授权创建vue-oidc-client创建Auth2.0认证跳转获取令牌创建回调页面创建退出登录最终效果Volo.Abp的身份服务器模块默认使用IdentityServer4实现身份认证。IdentityServer4是一个开源的OpenIDConnect和OAuth2.0框架,它实现了这些规范中的所有必需功能。......