[原]Openstack之identity server(keystone)
本博客已经添加"打赏"功能,"打赏"位置位于右边栏红色框中,感谢您赞助的咖啡.
重新温习keystone的概念和理解
-------------------------------↓个人对官方文档中概念的理解------------
User
Digital representation of a person, system, or service who uses
OpenStack cloud services. The Identity service validates that incoming
requests are made by the user who claims to be making the call.
Users have a login and may be assigned tokens to access resources.
Users can be directly assigned to a particular tenant and behave as if
they are contained in that tenant.
可以理解为用户,系统或者一个服务
Credentials
Data that confirms the user's identity. For example: user name and
password, user name and API key, or an authentication token provided
by the Identity Service.
可以理解为证书:包括用户名和密码,或者用户名和APIkey,或者身份验证服务颁发的token
Authentication
The process of confirming the identity of a user. OpenStack Identity
confirms an incoming request by validating a set of credentials supplied
by the user.
These credentials are initially a user name and password, or a user
name and API key. When user credentials are validated, OpenStack
Identity issues an authentication token which the user provides in
subsequent requests.
可以理解为一个用户认证进程。由用户发送一组证书给openstack进行认证。
证书的初始化由用户名和密码,或者用户名和APIkey。如果证书有效。openstack
将颁发一个证书给authentication token给用户,用户将用这个authentication token来
发起以后的请求。
Token
An alpha-numeric string of text used to access OpenStack APIs and
resources. A token may be revoked at any time and is valid for a finite
duration.While OpenStack Identity supports token-based authentication in
this release, the intention is to support additional protocols in the future.
Its main purpose is to be an integration service, and not aspire
to be a full-fledged identity store and management solution.
可以理解为一个由identity server 颁发的令牌,用户有token才能接入APIs 和资源
这个令牌可以随时收回,也可以设置在一段时间有效。
在未来支持附加的协议,keystone的主要目的是集成服务,而不是渴望成为一个完全
的认证仓库和管理解决方案。
Tenant
A container used to group or isolate resources. Tenants also group
or isolate identity objects. Depending on the service operator, a tenant
may map to a customer, account, organization, or project.
租户,可以理解为一个分组或者隔离资源和身份对象的容器。可以根据service的操作者
容器和映射为一个用户,账号,组织或者项目
Service
An OpenStack service, such as Compute (nova), Object Storage
(swift), or Image service (glance). It provides one or more endpoints
in which users can access resources and perform operations
理解为OpenStack service,可以通过一个或者多个endpoints来接入service执行相关操作
Endpoint
A network-accessible address where you access a service, usually a
URL address. If you are using an extension for templates, an endpoint
template can be created, which represents the templates of all
the consumable services that are available across the regions.
接入服务的一个URL地址,如果想扩展templates,会创建一个endpoint
template。它能包含所有可用服务区域的接入口
Role
A personality with a defined set of user rights and privileges to perform
a specific set of operations.
In the Identity service, a token that is issued to a user includes the
list of roles. Services that are being called by that user determine
how they interpret the set of roles a user has and to which operations
or resources each role grants access.
一个操作者包含的一套权限和特权。
在identity service 中,一个包含了roles 列表的token将被分给一个user,这个user请求的
服务,将决定怎么去解释这个用户在这个服务中所拥有的操作和访问权限。
Keystone Client
A command line interface for the OpenStack Identity API. For example,
users can run the keystone service-create and keystone endpoint-
create commands to register services in their OpenStack installations.
Openstack API的一个命令行接口,例如,用户可以在openstack的安装环境中运行service-create和keystone endpoint-
create来注册服务
----------↑个人对官方文档中概念的理解----↓网友对keystone的一些理解--------------
Keystone简介
Keystone(OpenStack Identity Service)是OpenStack框架中,负责身份验证、
服务规则和服务令牌的功能, 它实现了OpenStack的Identity API。Keystone类似一个服
务总线, 或者说是整个Openstack框架的注册表, 其他服务通过keystone来注册其服务
的Endpoint(服务访问的URL),任何服务之间相互的调用, 需要经过Keystone的身份
验证, 来获得目标服务的Endpoint来找到目标服务。
Keystone基本概念介绍
1. User
User即用户,他们代表可以通过keystone进行访问的人或程序。Users通过认证信息
(credentials,如密码、API Keys等)进行验证。
2. Tenant
Tenant即租户,它是各个服务中的一些可以访问的资源集合。例如,在Nova中一个
tenant可以是一些机器,在Swift和Glance中一个tenant可以是一些镜像存储,在Quantum中
一个tenant可以是一些网络资源。Users默认的总是绑定到某些tenant上。
3. Role
Role即角色,Roles代表一组用户可以访问的资源权限,例如Nova中的虚拟机、Glance中
的镜像。Users可以被添加到任意一个全局的 或 租户内的角色中。在全局的role中,用户的role
权限作用于所有的租户,即可以对所有的租户执行role规定的权限;在租户内的role中,用户仅能
在当前租户内执行role规定的权限。
4. Service
Service即服务,如Nova、Glance、Swift。根据前三个概念(User,Tenant和Role)一
个服务可以确认当前用户是否具有访问其资源的权限。但是当一个user尝试着访问其租户内的
service时,他必须知道这个service是否存在以及如何访问这个service,这里通常使用一些不
同的名称表示不同的服务。在上文中谈到的Role,实际上也是可以绑定到某个service的。例如,
当swift需要一个管理员权限的访问进行对象创建时,对于相同的role我们并不一定也需要对nova
进行管理员权限的访问。为了实现这个目标,我们应该创建两个独立的管理员role,一个绑定到swift
,另一个绑定到nova,从而实现对swift进行管理员权限访问不会影响到Nova或其他服务。
5. Endpoint
Endpoint,翻译为“端点”,我们可以理解它是一个服务暴露出来的访问点,如果需要访问一个
服务,则必须知道他的endpoint。因此,在keystone中包含一个endpoint模板(endpoint template,
在安装keystone的时候我们可以在conf文件夹下看到这个文件),这个模板提供了所有存在的服务endpoints信息。
一个endpoint template包含一个URLs列表,列表中的每个URL都对应一个服务实例的访问地址,并且具
有public、private和admin这三种权限。public url可以被全局访问(如http://compute.example.com),
private url只能被局域网访问(如http://compute.example.local),admin url被从常规的访问中分离。
----------------------------------------------------------↓引用 Aaron 的理解---------------------------------
keystone 里面的概念很多,有:User,Credentials,Authentication,Token,Tenant,Service,Endpoint,Role。在这么多概念中,其实最主要的就是 User 和 Tenant 。由于一些安全,服务问题,才引发了其它的概念。
那什么叫做 User ,Tenant 呢?这里我举个比较好理解的例子。我们去宾馆住的时候,我们自己就相当于 User ,而宾馆就是 Tenant 。这是最简单的情况,宾馆值提供房间,我们只需要住房。
随着后来生活物质等的提高,这种现象就变了。我们去宾馆住的时候,很多东西都不一样,比如,开房间要身份证,房间的钥匙是一个可以当卡刷的牌子,我们进出宾馆的时候需要用自己的钥匙来开启宾馆的大门;还有就是,宾馆不仅仅是用来住的了,它可以给我们提供饮食,娱乐,健身等各种服务;而且服务层次的不同,房间也不同,房间里面的配置豪华程度也不一样。在这种情况下,描述我们和宾馆之间的关系就复杂一些了,这就引发了一些新的概念。
举完这个例子, keystone 中的各种概念就可以和例子中的事物相挂钩了。
User | 住宾馆的人 |
Credentials | 开启房间的钥匙 |
Authentication | 宾馆为了拒绝不必要的人进出宾馆,专门设置的机制,只有拥有钥匙的人才能进出 |
Token | 也是一种钥匙,有点特别 |
Tenant | 宾馆 |
Service | 宾馆可以提供的服务类别,比如,饮食类,娱乐类 |
Endpoint | 具体的一种服务,比如吃烧烤,打羽毛球 |
Role | VIP 等级,VIP越高,享有越高的权限 |
Keystone在OpenStack中的访问流程范例(注:下面是G版之前的情况,G版使用的是PKI)
[原]Openstack之identity server(keystone)的更多相关文章
- OpenStack Identity(Keystone)概述及示例
OpenStack 的验证服务有两个主要功能: 1. 用户管理(租户.用户.权限) 2. Service catalog,管理服务的目录和它们的endpoint. 相关概念 1. User User即 ...
- openstack学习心得:keystone 架构、概念、访问流程
1.keystone 介绍及其组成 OpenStack Identity 服务提供了一个单一的功能集合,包括管理认证,授权和服务目录. Identity 服务通常作为和用户第一个交互的服务.一旦认证成 ...
- OpenStack实践系列②认证服务Keystone
OpenStack实践系列②认证服务Keystone 三.实战OpenStack之控制节点3.1 CentOS7的时间同步服务器chrony 下载chrony # yum install -y chr ...
- OpenStack kilo版(2) keystone部署
部署在controller节点 配置数据库 MariaDB [(none)]> CREATE DATABASE keystone; Query OK, 1 row affected (0.00 ...
- 3.openstack之mitaka搭建keystone认证服务
认证服务keystone部署 一:安装和配置服务 1.建库建用户 mysql -u root -p CREATE DATABASE keystone; GRANT ALL PRIVILEGES ON ...
- 【OpenStack】OpenStack系列2之KeyStone详解
源码下载.依赖安装 参考:http://www.oschina.net/question/565065_66271 https://github.com/yongluo2013/osf-opensta ...
- (原创)OpenStack服务如何使用Keystone(一)---Keystone端的操作
(一)Keystone端的操作 (二)如何在OpenStack服务上部署Keystone中间件 (三)详细配置keystonemiddleware OpenStack项目如果要使用Keystone作为 ...
- (原创)OpenStack服务如何使用Keystone(三)---详细配置Keystone中间件
(一)Keystone端的操作 (二)如何在OpenStack服务上部署Keystone中间件 (三)详细配置keystonemiddleware 前文我们介绍了如何部署Keystone中间件以及中间 ...
- (原创)OpenStack服务如何使用Keystone (二)---部署和配置Keystone中间件
(一)Keystone端的操作 (二)如何在OpenStack服务上部署Keystone中间件 (三)详细配置keystonemiddleware 部署OpenStack时一般先安装Keystone服 ...
随机推荐
- YII2 设置session过期时间
设置session过期时间 如何在YII里设置SESSION过期时间,而不需要在php.ini里面设置. 在protected/config/main.php里,设置: 代码如下 复制代码 'comp ...
- 机器学习——使用Apriori算法进行关联分析
从大规模的数据集中寻找隐含关系被称作为关联分析(association analysis)或者关联规则学习(association rule learning). Apriori算法 优点:易编码实现 ...
- ubuntu 12.04和Windows 7双系统的安装方法
ubuntu是一个操作系统,和安卓一样同是linux内核下的子民,所以来这贡献一下,也求JW放出安卓4.0原生正式版,我只想要这个. 前几天发布了ubuntu12.04LTS 版本,兴奋ing. 看到 ...
- [译]Angular-ui 之 多命名视图(Multiple Named Views)
◄上一篇 (Nested States & Nested Views) 下一篇 (URL Routing) ► 你可以给你的视图命名,以便可以在单个模版当中拥有一个以上的 ui-vie ...
- 使用vi时提示 write error in swap file
今天使用vi 命令时,提示write error in swap file 查了下原因,磁盘空间不够 df -h 使用 rm -rf 文件名 ,删除不用的 使用 echo "" & ...
- 怎么用ABBYY在线浏览PDF文件
ABBYY FineReader 让您可以从在线存储服务中打开图像或 PDF 文件,并将已识别文本保存至在线存储服务中,如 Dropbox.SkyDrive 或 Google Drive 等.通过在 ...
- QT编译错误:Project ERROR: This example requires Qt to be configured with -opengl desktop
学习QT场景视图,对一个Boxes的例子比较感兴趣,于是去编译学习,结果编译不能通过(使用的是QT5.12): Project ERROR: This example requires Qt to b ...
- C# toolstrip 上添加DateTimePicker Control控件
private void AddDTPtoToolstrip( n){DateTimePicker dtp = DateTimePicker;dtp.Width = 110;dtp.Format = ...
- Kafka监控工具KafkaOffsetMonitor配置及使用
转载:https://www.cnblogs.com/dadonggg/p/8242682.html jar包下载地址 KafkaOffsetMonitor托管在Github上,可以通过Github下 ...
- [Arch] 02. Design principle and Software Pattern
Ref: 软件设计的七大原则 有时间的话,还需进一步深入理解. Figure, 重要的前五个原则 单一职责原则 (Simple responsibility pinciple SRP) 类的设计趋向于 ...