一、基础理论篇
1、Keystone的概述
Keystone是Openstack的组件之一,用于为Openstack家族中的其它组件成员提供统一的认证服务,包括身份验证,令牌的发放和校验,服务列表,用户权限的定义等。Openstack中任何组件均依赖与Keystone提供的服务。
2、Keystone 功能
用户与认证:用户权限与用户行为追踪。
服务目录:为每个组件服务提供一个可用的服务目录和相应的API入口端点。
Keystone (OpenStack Identity Service ) 基本概念用户(user)
使用服务的用户,可以是人,服务或者系统,只要是使用了openstack服务的对象都可以称为用户。当User对OpenStack进行访问时,Keystone会对其身份进行验证。
项目(project)
租户,可以理解为一个人、项目或者组织拥有的资源的合集。在一个租户中可以拥有很多个用户,这些用户可以根据权限的划分使用租户中的资源。
角色(role)
角色,用于分配操作的权限。角色可以被指定给用户,使得该用户获得角色对应的操作权限。安全包含两部分:Authentication(认证)和 Authorization(鉴权)
服务(service)
Openstack Service,即Openstack中运行的组件服务。nova,glance都是属于一个服务,需要在keystone上进行创建,指定类型。创建服务有一个服务,就创建一个endpoint,会根据服务类型去查找那个服务。Service 决定每个 Role 能做什么事情 ,Service 通过各自的 policy.json 文件对 Role 进行访问控制。
令牌(token)
指的是一串比特值或者字符串,用来作为访问资源的令牌。Token中含有可访问资源的范围和有效时间。
端点(endpoint)
一个可以通过网络来访问和定位某个Openstack Service的地址,通常是一个URL。例如,Nova需要访问Glance服务去获取Image时,Nova通过访问Keystone拿到Glance的Endpoint,然后通过访问该Endpoint去获取Glance服务,我们可以通过Endpoint的region属性去定义多个region。Endpoint该使用对象分为三类:
1. Admin URL:给admin用户使用,被从常规的访问中分离。
2. Internal URL:Openstack内部服务使用来跟别的服务通信,只能被局域网访问。
3. Public URL:其它用户可以访问的地址,可以被全局访问。
4. User 通过 Endpoint 访问资源和执行操作
证书(Credentials)
用于确认用户身份的凭证。
认证方式(authentication)
确定用户身份的过程。
5、Keystone 工作流程图
图片来源网络
6、Keystone V3 API特性
1. Tenant更改为Project
2.添加了Domain(对系统资源进行限额 一个域中可以存在多个项目以及用)
3.添加了Group (组的概念为了更好的管理用户,例如linux下对组授权,其组下面的用户也有了相应的权限)
7. keystone 图解:
图片来源网络
二、实践操作篇
1. 环境说明
系统主机名IP地址
CentOS 7.7controllerens33:10.