Keystone详解

一 什么是KeyStone
KeyStone是OpenStack的组件之一,用于为OpenStack家族中的其它组件成员提供统一的认证服务,包括身份验证,令牌发放和校验,服务列表,用户权限定义等。

二 KeyStone in OpenStack
Keystone详解_第1张图片

三 基本概念
User(用户)
用于身份认证,一个用户可以关联多个租户。
Tenant(租户)
相当于用户组的概念。一个租户可以容纳多个用户。
Role(角色)
关联到“用户-租户对”的元数据。可以关联到多个“用户-租户对”
Token(令牌)
用于验证用户或者“用户-租户对”的请求是否合法。
Service(服务)
服务类型和名称。
Endpoint(端点)
服务额实例(URL入口)

四 用户-角色-服务交互图
Keystone详解_第2张图片

五 基本架构
Keystone详解_第3张图片

六 Backend
Keystone详解_第4张图片

七 验证流程
Keystone详解_第5张图片

八创建虚拟机流程
Keystone详解_第6张图片

九 Keystone work flow
Keystone详解_第7张图片

十 流程解释
1 用户向keystone发送用户名和密码,通过验证后,keystone会返回一个临时token和一个service catalog列表。
2 用户用这个临时token向catalog列表中keystone的endpoint请求用户对应的tenant信息,keystone验证token通过后会返回对于tenant列表。
3 用户从列表中选取tenant,再次向keystone请求,keystone验证通过后,返回与该tenant相关的catalog信息和token。
4 用户用该token以及tenant/user信息向catalog中navo服务器端口请求开启虚拟服务。nova向keystone请求验证:a.token是否合法?b.这个租户/用户是否有权限来向nova请求服务?
5 用户返回给nova:a.租户-用户具备访问nova的权限。b.token合法。c.token属于该租户-用户。
6 nova根据自己的规则判断用户是否具备开启虚拟机的权限,如果具备,启动虚拟机。并向用户报告状态。

十一 Keystone安装
Keystone包安装
Keystone配置
KeyStone数据库初始化
Keystone服务启动

十二 KeyStone CLI使用
Keystone:包含一个命令行接口,可以与Keystone API交互以管理keystone和相关服务。
Keystone-all:用于验证的,面向管理员和用户的API。
Keystone-manage:管理keystone的命令行接口,用于管理与keystone相连接的数据库。
1 创建租户
keystone tenant-create --name --description
2 创建用户
keystone user-create --name   --tenant-id 637856874 --pass 111111 --email [email protected]
3 创建角色
keystone role-create --name
4 绑定角色
keystone --os-username --os-passwork 111111 --os-tenant-name --os-auth-url "http://localhost:35357/v2.0" tenant-list
keystone user-role-list --user --tenant
keystone user-role-add --user --role admin --tenant
5 创建服务
Keystone详解_第8张图片
6 查询服务列表
Keystone详解_第9张图片

十三 调试工具
Curl
Firefox plugin
restclient-ui-3.4-jar

你可能感兴趣的:(Openstack)