keystone组件

引:  什么是keystone

    为何要有keystone

    keystone的功能

    keystone概念详解

    keystone与openstack其他组件关系 

    keystone与其他组件协同工作流程

    keystone工作流程详解

一、什么是keystone


keystone是 OpenStack Identity Service 的项目名称,是一个负责身份管理与授权的组件。

主要功能:实现用户的身份认证,基于角色的权限管理,及openstack其他组件的访问地址和安全策略管理。

二 、为何要有keystone

Keystone项目的主要目的是给整个openstack的各个组件(nova,cinder,glance...)提供一个统一的验证方式:

openstack是由众多组件构成的一套系统,该系统的功能是对外提供服务,因而我们可以将其定义为一个‘庞大的软件’,没有软件不考虑安全因素,Keystone对于通常的应用场景所不同的是他要解决分布式环境下的统一认证。



三、keystone的功能

openstack是一个SOA(面向服务的体系结构,是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来)架构,理论上各子项目独立提供相关服务,互不依赖。如nova提供计算服务,glance提供镜像服务等。

实际上所有的组件都依赖keystone,它有两个功能:

(1)用户管理:验证用户身份的合法性。

(2)服务目录管理:提供服务目录(ServiceCatalog:包括service和endpoint)服务,类似于UDDI服务的概念,用户(无论是Dashboard, APIClient)都需要访问Keystone获取服务列表,以及每个服务的地址(Openstack中称为Endpoint)

四、 keystone概念详解

User:

使用 OpenStack Service 的的对象被称为用户,这里的用户可以是人、服务、系统。

Credentials

用于确认用户身份的凭证,

具体可以是:

1、用户名和密码

2、用户名和API key

3、一个 Keystone 分配的身份token

Authentication:

确定用户身份的过程。

1、是验证用户身份的过程。Keystone 服务通过检查用户的 Credential 来确定用户的身份。

2、最开始,使用用户名/密码或者用户名/API key作为credential。当用户的credential被验证后,Kestone 会给用户分配一个 authentication token 供该用户后续的请求使用。

3、Keystone中通过Policy(访问规则)来做到基于用户角色(Role)的访问控制。

Token

1、令牌,使用一个字符串表示。

2、Token一般被用户持有,Token包含了在指定范围和有效时间内可以被访问的资源。在Nova中一个tenant可以是一些虚拟机,在Swift和Glance中一个tenant可以是一些镜像存储,在Network中一个tenant可以是一些网络资源。

Role:

1、本质就是一堆ACL的集合,用于划分权限

2、可以通过给User指定Role,使User获得Role对应的操作权限。

3、Keystone返回给User的Token包含了Role列表,被访问的Services会判断访问它的User和User提供的Token中所包含的Role,及每个role访问资源或者进行操作的权限。

4、系统默认使用管理Role admin和成员Role _member_ 。

5、user验证时必须带有Project(Tenant)

Policy:

1、对于Keystone service来说,Policy就是一个JSON文件,默认是/etc/keystone/policy.json。通过配置这个文件,Keystone实现了对User基于Role的权限管理。

2、OpenStack对User的验证除了OpenStack的身份验证以外,还需要鉴别User对某个Service是否有访问权限。Policy机制就是用来控制User对Project(Tenant)中资源的操作权限。

Service:

指Openstack中运行的组件服务。

Endpoint:

1、是一个可以通过网络来访问和定位某个Openstack service的地址,通常是一个URL

2、不同的region有不同的endpoint(我们可以通过endpoint的region属性去定义多个region)。

3、当Nova需要访问Glance服务去获取image 时,Nova通过访问Keystone拿到Glance的endpoint,然后通过访问该endpoint去获取Glance服务。

4、Endpoint 分为三类:

admin url –> 给admin用户使用,Port:35357

internal url –> OpenStack内部服务使用来跟别的服务通信,Port:5000

public url –> 其它用户可以访问的地址,Port:5000

V3新增的概念:

Tenant 重命名为 Project

添加了 Domain 的概念

添加了 Group 的概念

时间: 2025-01-03 22:50:45

keystone组件的相关文章

Openstack keystone组件详解

OpenStack Keystone Keystone(OpenStack Identity Service)是 OpenStack 框架中负责管理身份验证.服务规则和服务令牌功能的模块.用户访问资源需要验证用户的身份与权限,服务执行操作也需要进行权限检测,这些都需要通过 Keystone 来处理.Keystone类似一个服务总线, 或者说是整个Openstack框架的注册表, 其他服务通过keystone来注册其服务的Endpoint(服务访问的URL),任何服务之间相互的调用, 需要经过Ke

OpenStack、keystone组件

=============

Openstack组件部署 — Keystone Install & Create service entity and API endpoints

目录 目录 前文列表 Install and configure Prerequisites 先决条件 Create the database for identity service 生成一个随机数 Install and configure components Configure the Apache HTTP server Create the service entity and API endpoints Prerequisites 先决条件 Create the service e

Openstack组件部署 — keystone(domain, projects, users, and roles)

目录 目录 前文列表 Create a domain projects users and roles domain projects users and roles的意义和作用 Create the default domain Create the service projecttenant 创建用于管理的用户租户和角色 Create the admin projecttenant Create the admin user Create the admin role Add the adm

Oracle VM + centos7.1+openstack kilo 多结点安装教程---keystone的安装(3)

声明:最近在进行openstack的kilo版本的安装,发现现有的网络教程非常少,而且多数教程并不能安装成功,故写此教程.openstack的安装较为复杂,本教程并不能保证在不同环境下也能将其安装成功.个人安装教程,也难免出错.同时,安装是在虚拟机环境下,真实安装环境需要进行更改. 转载请声明出处: 作者:张某人ER 原文链接:http://blog.csdn.net/xinxing__8185/article/details/51191337 第二部分 keystone的安装 (3) open

OpenStack入门 之 各组件解析

学习目标: 掌握 OpenStack 的各组件的架构和功能 本次笔记的内容有: Nova 组件解析 Swift 组件解析 Cinder 组件解析 Neutron 组件解析 Horizon 组件解析 Glance 组件解析 Keystone 组件解析 是常用的 7 个组件: 负责虚拟机创建.管理和销毁.提供计算资源服务的 Nova: 提供对象存储服务的分布式存储 Swift: 提供块存储服务的 Cinder: 提供虚拟机镜像管理和存储服务的 Glance: 软件定义网络项目 Neutron: 提供

三、OpenStack入门 之 各组件解析

OpenStack入门 之 各组件解析 写在前面 学习目标: 掌握 OpenStack 的各组件的架构和功能 本次笔记的内容有: Nova 组件解析 Swift 组件解析 Cinder 组件解析 Neutron 组件解析 Horizon 组件解析 Glance 组件解析 Keystone 组件解析 是常用的 7 个组件: 负责虚拟机创建.管理和销毁.提供计算资源服务的 Nova: 提供对象存储服务的分布式存储 Swift: 提供块存储服务的 Cinder: 提供虚拟机镜像管理和存储服务的 Gla

探索 OpenStack 之(13):研究 Keystone

Keystone 是 OpenStack Identity Service 的项目名称.本文就试着尽可能深入地研究 Keystone. 1. Keystone 的功能 做为 OpenStack 云系统的入口,Keystone 提供了云系统入口所需要的许多功能: (1). 用户身份验证:系统得知道用户是不是合法的用户.为此,Keystone 需要对 user 进行管理和保存:管理用户相关的 tenant.role.group 和 domain等:用户 credential 的存放.验证.令牌管理等

openstack部署之keystone

简介 keystone作为openstack的认证服务,有很多组件都需要于keystone交互,所以我们首先来部署keystone组件. 创建数据库 下边需要创建一个keystone数据库,并进行授权 $ mysql -u root -p MariaDB [(none)]> CREATE DATABASE keystone; MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTI