Identity Service(Keystone)认证服务
Keystone是OpenStack Identity Service的项目名称,是一个负责身份管理与授权的组件
主要功能
实现用户的身份认证,基于角色的权限管理,及OpenStack其他组件的访问地址和安全策略管理,主要目的是给整个OpenStack的各个组件提供一个统一的验证方式
用户管理
Account:账户
Authentication:身份认证
Authorization:授权
服务目录管理
展示各个组件的组件的URL路径,告诉用户到哪里访问对应的服务
组件
user(用户) # 一个人、系统或服务在OpenStack中的数字表示。已经登录的用户分配令牌以访问资源。用户可以直接分配给特定的租户,就像隶属于每个组。Credentials(凭证) # 用于确认用户身份的数据。例如:用户名和密码,用户名和API key,或由认证服务提供的身份验证令牌Authentication(验证) # 确认用户身份的过程。Token(令牌) # 一个用于访问OpenStack API和资源的字母数字字符串。一个令牌可以随时撤销,并且持续一段时间有效Tenant(租户) # 一个组织或孤立资源的容器。租户和可以组织或隔离认证对象。根据服务运营的要求,一个租户可以映射到客户、账户、组织或项目Service(服务) # OpenStack服务,例如计算机服务(nova),对象存储服务(swift),或镜像服务(glance),它提供了一个或多个端点,供用户访问资源和执行操作。Endpoint(端点) # 一个用于访问某个服务的可以通过网络进行访问的地址,通常是一个URL地址,一个端点确定一个服务,一个服务可以有多个端点Role(角色) # 定制化的包含特定用户权限和特权的权限集合Keystone Client(keystone命令行工具) # Keystone的命令行工具。通过该工具可以创建用户,角色,服务和端点等
用户认证过程
用户去向keystone发起认证凭证,keystone向用户返回token,user带着token值去向keystone查看当前能为user提供服务的集合有哪些,keystone返回租户列表,user访问nova服务,user通过认证,keystone返回usertoken值以及端点(endpoint),然后user带着token去访问端点(endpoint),然后端点带着token值去keystone去验证token,keystone验证成功后告诉nova验证成功,nova开始处理,处理完返回结果给user
组件之间交互过程
user创建一台虚拟机,首先user向keystone发起认证凭证,keystone返回user一个token值,然后user带着token值以及请求虚拟机的数据去访问nova组件,nova服务收到token以及请求虚机的数据后向keystone验证token值的准确性,验证正完毕后带着token值以及请求镜像的数据访问glance组件,glance组件收到数据后向keystone发起验证请求,验证通过后glance返回镜像到nova,然后nova带着token及请求向Neutron服务,Neutron继续带着token去keystone组件验证token值,验证通过则返回对应的网络,返回成功,nova向user返回成功,此时user成功创建一台虚拟机。
用户-角色-服务交互
1、一个用户可以有多个租户
2、一个用户可以绑定到多个角色
3、一个角色可以关联不同的服务
备注:此文章为本人学习笔记,各位大佬不喜勿喷,谢谢!