本文将介绍 OpenStack Identity,它提供了对其他所有 OpenStack 项目进行身份验证的一种常见方法。
每项多用户服务都需要一些机制来管理哪些人可以访问应用程序,以及每个人可以执行哪些操作。私有云也不例外,而且 OpenStack 已经将这些功能简化为一个单独的称为 Keystone 的项目。
Keystone 是 OpenStack Identity 的项目名称,该服务通过 OpenStack 应用程序编程接口 (API) 提供令牌、策略和目录功能。与其他 OpenStack 项目一样,Keystone 表示一个抽象层。它并不实际实现任何用户管理功能;而是会提供插件接口,以便组织可以利用其当前的身份验证服务,或者从市场上的各种身份管理系统中进行选择。
Keystone 集成了用于身份验证、策略管理和目录服务的 OpenStack 功能,这些服务包括注册所有租户和用户,对用户进行身份验证并授予身份验证令牌,创建横跨所有用户和服务的策略,以及管理服务端点目录。身份管理系统的核心对象是用户 — 使用 OpenStack 服务的个人、系统或服务的数字表示。用户通常被分配给称作租户的容器,该容器会将各种资源和身份项目隔离开来。租户可以表示一个客户、帐户或者任何组织单位。
身份验证是确定用户是谁的过程。Keystone 确认所有传入的功能调用都源于声明发出请求的用户。该过程通过测试凭证形式的声明来执行这一验证。凭证数据的显著特性就是它应该只供拥有数据的用户访问。该数据中可以只包含用户知道的数据(用户名称和密码或密钥),用户通过物理方式处理的一些信息(硬件令牌),或者是用户的一些 ”实际信息”(视网膜或指纹等生物特征信息)。
在 OpenStack Identity 确认完用户的身份之后,它会给用户提供一个证实该身份并且可以用于后续资源请求的令牌。每个令牌都包含一个作用范围,列出了对其适用的资源。令牌只在有限的时间内有效,如果需要删除特定用户的访问权限,也可以删除该令牌。
安全策略是借助一个基于规则的授权引擎来实施的。用户经过身份验证后,下一步就是确定身份验证的级别。Keystone 利用角色的概念封装了一组权利和特权。身份服务发出的令牌包含一组身份验证的用户可以假设的角色。然后,由资源服务将用户角色组与所请求的资源操作组相匹配,并做出允许或拒绝访问的决定。
Keystone 的一个附加服务是用于端点发现的服务目录。该目录提供一个可用服务清单及其 API 端点。一个端点就是一个可供网络访问的地址(例如 URL),用户可在其中使用一项服务。所有 OpenStack 服务,包括 OpenStack Compute (Nova) 和 OpenStack Object Storage (Swift),都提供了 Keystone 的端点,用户可通过这些端点请求资源和执行操作。
架构
从架构方面讲,Keystone 非常简单。它处理所有 API 请求,提供 Identity、Token、Catalog 和 Policy 服务。可以通过 API 网络将 Keystone 作为一组已暴露的前端服务进行组织:
Identity 服务验证了身份验证凭证,并提供了所有相关的元数据。 在验证了用户的凭证后,Token 服务将会验证并管理用于验证请求身份的令牌。 Catalog 服务提供了可用于端点发现的服务注册表。 Policy 服务暴露了一个基于规则的身份验证引擎。
每个 Keystone 功能都支持用于集成到异构环境并展示不同功能的后端插件。更常见的一些后端包括:
Key Value Store:一个接口,支持主键 查找,例如内存中的字典。 Memcached:分布式内存缓冲系统。 Structured Query Language (SQL):使用 SQLAlchemy(一个 Python SQL 工具包和 Object Relational Mapper)来永久存储数据。 Pluggable Authentication Module (PAM):使用本地系统的 PAM 服务进行身份验证。 Lightweight Directory Access Protocol (LDAP):通过 LDAP 连接到一个后端字典,例如 Active Directory®,以便验证用户身份并 获取角色信息。
设置
在不同的分发和 OpenStack 版本之间,实际的安装说明也大不相同。通常,这些安装说明可在分发过程中提供。但是,必须完成相同的基础任务。本节将介绍其中涉及的一些概念。
系统要求
OpenStack 依赖于一种 64 位 x86 架构;另外,它是为商用硬件而设计的,所以具有极低的系统要求。它可以在配有包含 8GB RAM 的单个系统上运行整套 OpenStack 项目。对于稍微大一些的安装,可能会将 Keystone 服务与其他项目(例如 Nova 控制器)共同放置在一个位置。但是,为了获得高度可扩展实现,最好使用专用系统进行身份管理。对于单一系统,四核 CPU、32GB RAM 和两个 Gbit 网络适配器是一个不错的起点。
安装
安装指令取决于发行版本,更具体来讲,取决于您选择的包管理实用程序。在许多情况下,必须声明存储库。所以,举例而言,如果您使用的是 Zypper,那么您要用 zypper ar 向 libzypp 公开:
# zypper ar -f http://download.opensuse.org/repositories/Cloud:/OpenStack:/Grizzly/SLE_11_SP3/Cloud:OpenStack:Grizzly.repo
然后,安装所需的 Keystone 数据包,而且数据包管理实用程序应该自动安装所有依赖关系。完整的安装过程取决于您想要得到的配置和所用的 OpenStack 的准确版本。请务必查看安装指南中的权威说明。出于演示之目的,下面提供了 Debian(例如 Ubuntu)、Red Hat (Red Hat Enterprise Linux®, CentOS, Fedora) 和 openSUSE 的一些主要命令:
Debian。在基于 Debian 的系统(例如 Ubuntu)上安装 Keystone,使用以下命令: sudo apt-get install keystonesudo apt-get install python-keystonesudo apt-get install python-keystoneclient Red Hat。在 Red Hat 系统上,使用的命令是: sudo yum install openstack-keystonesudo yum install python-keystonesudo yum install python-keystoneclient openSUSE。使用以下命令: sudo zypper install openstack-keystonesudo zypper install python-keystoneclient
配置
主要 Keystone 配置文件是 keystone.conf,该文件位于 /etc/keystone/ 中。该文件将会识别 [auth] 一节中指定的所有身份验证插件:
methods。列出所有身份验证插件名称。 <plugin name>。指定每种身份验证方法的类。
例如:
[auth]methods = password,token,oauth1password = keystone.auth.plugins.password.Passwordtoken = keystone.auth.plugins.token.Tokenoauth1 = keystone.auth.plugins.oauth1.OAuth
对于插件注册其自己的配置选项来说,目前还没有一种标准机制,但常见的做法是将其自己的部分放入配置文件中。
证书
许多组织正逐渐转向公钥基础架构 (Public Key Infrastructure),因为这是一项高度可扩展的、基于标准的技术。该项技术的一个优势是它允许委托信任(delegated trust),这对身份联合至关重要,但同时也意味着有必要通过一个防篡改的链接向公认的可信认证机构 (CA) 展示真实性。
实际上,这意味必须使用 CA 认证的 X.509 证书来签署公钥。对于完全的内部实现,可能会使用 keystone-manage 来生成一个自签署的证书,但在联合环境中,可能会需要来自外部 CA 的证书。
安装外部 CA 发出的证书涉及到以下操作:
从外部 CA 请求一个签名证书 将证书和私钥转换为 Privacy Enhanced Email (PEM) 格式 通过将 .pem 文件复制到证书目录来安装外部签名证书
使用场景
身份管理是一项支持功能,其有形目的(tangible purpose)要少于大多数其他 OpenStack 项目。应该将该功能视作一个推动因素,它可以简化服务发现,并提供执行安全策略的统一方法。
或许,虚拟化其使用的最简单的方法是将其划分为两部分。Keystone 中的管理功能定义了用户和项目,并分配了适当的授权。在配置好环境之后,项目和应用程序就可以与 Keystone 结合使用,以便执行查询和验证访问控制。
管理
首先来看第一部分,这部分最容易执行,因为该部分映射到了 Horizon 仪表板。管理员可以创建项目和用户。可以给用户分配角色并将其聚集成组来简化管理。
第一步通常是创建一个项目。以管理员身份登录到 OpenStack Dashboard。在导航面板中的 Identify Panel 下,单击 Projects > Create Project。
图 1. 创建新项目
此时,除了名称和描述之外,不需要任何信息。您至少需要一个用户。在 Identity Panel 下,单击 Users > Create User。
图 2. 创建用户
编辑项目。在 Identity Panel 下,单击 Projects > Edit Project。
图 3. 编辑项目
在 Edit Project 窗口中的 Project Members 选项卡下,可以编辑项目成员和更改其角色。
图 4. 编辑项目成员和更改其角色
还可以使用 Quota 选项卡指定项目的限制条件。这在多租户环境中尤其有用,可确保一个项目不会使用过多的资源,也不会遗漏在同一基础架构上运行的其他关键服务。
图 5. 指定项目的限制条件
身份验证
该场景的第二部分是在执行操作时对服务进行身份验证。例如,请考虑一个使用 OpenStack Swift 来实现对象存储的应用程序。无论是否作为 OpenStack 计算实例的一部分运行,都必须能够进行身份验证,这意味着需要访问有效的凭证。
应用程序首先需要连接到身份验证服务并提供其凭证,然后它会接收到一个身份验证令牌,可将该令牌传递给 OpenStack Object Storage,以实现所有容器和对象操作。在有些情况下,可能会使用所有连接参数预先配置应用程序。也可以从 Keystone 中获得这些参数。例如,可以查询 Keystone,发现哪些项目是可以访问的,并请求该项目所需的服务 URL。
结束语
只要坚持使用 Horizon 用户界面,用户管理并不太难。该界面隐藏了内部流程,以及与其他用户存储库(例如 Active Directory,或任何 LDAP 目录)的一些必要集成。
相关推荐
这种多样化的后端支持意味着Keystone可以灵活地集成到不同的部署环境中。 Keystone的安装和配置是实现OpenStack云平台安全性的第一步。安装过程中,系统管理员需要配置Keystone以及相关服务的访问权限和策略。CLI...
OpenStack Keystone是OpenStack云平台的核心组件之一,主要负责身份管理和服务目录。它提供认证(Authentication)、授权(Authorization)和令牌管理(Token Management)服务,确保用户和系统间的安全交互。在...
**n阶Keystone变换**是图像处理领域中的一个重要概念,主要应用于校正因投影设备的几何失真导致的图像变形。这种失真通常发生在投影仪、相机或遥感设备等光学系统中,使得图像在远离中心的位置出现扭曲,就像石头从...
OpenStack Identity(Keystone)服务为运行OpenStack Compute上的OpenStack云提供了认证和管理用户、帐号和角色信息服务,并为OpenStack Object Storage提供授权服务。 Keystone体系结构 Keystone 有两个主要部件:...
TMS320C66x KeyStone架构多核DSP入门与实例精解.pdf牛金海
OpenStack身份认证组件keystone的配置文件备份,放入/etc/keystone/路径下并改名为keystone.conf生效
在使用Keystone.TTF时,用户通常需要将其安装到操作系统中,然后在各种应用程序(如Adobe Photoshop、Illustrator或Microsoft Word)中选择该字体来使用。字体在软件中通常以列表形式出现,用户可以通过字体名称...
Keystone变换是雷达信号处理中的一个重要概念,尤其在合成孔径雷达(SAR)成像技术中被广泛应用。它涉及到图像几何校正,确保由原始数据恢复出的图像具有正确的地理定位。在描述中提到的"keystone(插值法).zip...
在地基雷达系统中,由于地球表面不是平坦的,雷达发射的信号在传播过程中会发生弯曲,这使得雷达接收到的回波信号与目标的实际位置存在偏差,形似Keystone(拱门的顶部石块)的形状。Keystone变换通过改变信号的频率...
【存储器架构技术文档Keystone】深入解析 Keystone存储器架构是由德州仪器(TI)推出的,用于应对全球海量数据处理需求的挑战,特别是在无线和有线网络领域。该架构被设计用于多内核SoC(System-on-Chip),旨在提供高...
Keystone 是一个开源的身份认证(Identity)服务组件,它是OpenStack云操作系统的重要组成部分。源码分析可以帮助我们深入了解其内部机制和工作流程,这对于开发者来说是极其宝贵的资源。在这个"keystone-源码.rar...
在IT行业中,"keystone"通常指的是OpenStack项目中的核心组件——身份服务(Identity Service)。Keystone的主要职责是管理OpenStack云环境中的用户、项目、角色和服务认证,它提供了身份验证、授权和会话管理的功能...
Keystone变换是一种在数字信号处理领域中用于校正非线性失真的技术,尤其是在频谱分析和信号重建中。这个“Keystone.rar”压缩包包含了关于Keystone变换的不同实现方式,包括DFT+IFFT(离散傅里叶变换加逆离散傅里叶...
OpenStack组件KeyStone的安装脚本,详见http://blog.csdn.net/networm3/article/details/8568784
综上所述,文档详细介绍了在雷达信号处理中应用FPGA进行Keystone变换的实时处理架构的设计思路和实验验证。该架构通过可配置的并行处理单元,在不牺牲性能的前提下提升了处理速度,解决了工程上实现Keystone变换实时...
小目标积累是Keystone变换在低空小目标探测中的一个关键应用。通过多次积累,可以将多个微弱的小目标信号叠加在一起,达到信号强度的累加,从而提升目标的检测概率。同时,这种方法还可以抑制背景噪声,提高信噪比,...
在安装和配置OpenStack对象存储服务Swift以及身份认证服务Keystone的过程中,可能会遇到各种问题。以下是一些常见的错误及其解决方案: 1. **ImportError: No module named pbr.version** 这个错误通常是由于缺少...
【Keystone变换】是图像处理领域中的一种关键技术,主要用于纠正由光学系统或传感器引起的几何失真,尤其是在遥感和航空摄影等领域。标题中提到的"Keystone-Transfor.rar_Keystone_keystone_keystone matlab_keyston...
Keystone实现始终围绕着Keystone所实现的功能来展开,所以在理解其实现之前,建议大家尝试通过安装Keystone这一个过程来感受Keystone在Openstack架构中所充当的角色。下面给出了Keystone-M的安装过程。Keystone安装...