身份验证服务 - Keystone

1. 什么是Keystone?

  • 提供身份验证、服务规则和服务令牌功能
  • 提供了验证服务的API,为OpenStack中的各个组件提供了认证服务,类似于服务总线
  • 任何服务之间相互调用,都需要经过Keystone的身份验证

2.常用术语:

  • User:Openstack最基本的用户(进行访问的人或者程序)
  • Project:项目/租户。指分配给使用者的资源的集合。
  • Role:代表一组用户可以访问组员的权限
  • Domain:定义管理边界,是最上层的集合。可以包含多个project/tenant、user、role等。
  • Endpoint:服务的URL路径,可以认为是服务暴露出来的访问点

2.5 Keystone认证模型

身份验证服务 - Keystone_第1张图片

首先创建两个域domain1和2,给两个公司使用,每个公司在domain下创建三个子公司project1 2 3,project下可以创建多个用户User,用户User可以跨多个project存在。

3. Keystone认证原理

身份验证服务 - Keystone_第2张图片

当用户再创建时,将通过Keystone将会创建一个访问令牌accesstoken,假设当用户提出创建虚拟机实例的请求时,首先将自己的访问令牌和访问请求提交给Nova服务,Nova服务为确保用户的访问令牌并没有篡改过,因此首先会将访问令牌交给keystone进行验证。
验证通过后nova为了启动虚拟机的实例,还需要向Glance组件申请相关的镜像资源,Glance为保证访问令牌在传递的过程中没有被篡改过,也需要将访问令牌发送给keystone做确认,验证通过后将会发放镜像资源给nova组件。
虚拟机实例的创建还需要存储、网络等资源,因此nova组件还需要给负责各种资源的模块传递申请资源的请求,资源申请的过程中都会伴随这访问令牌的验证,nova拿到启动虚拟机实例的所有资源后进行实例的启动,然后分配给相关的用户。整个过程来看组件之间资源的调用都离不开keystone的验证....

你可能感兴趣的:(身份验证服务 - Keystone)