OpenStack Mitaka 版本中 keystone 的概念、概念之间的关系、以及keystone身份认证的基本过程描述

       本文包含以下三个方面的内容。

       1. keystone数据模型的术语解释

       2. keystone的openstack命令解析

       3. keystone的主要工作过程


       1. keystone数据模型中的一些术语

       在keystone中定义的数学模型,其核心思想是定义了有哪些使用者(user/group)、这些使用者能使用哪些范围内的资源(domain/project)、这些用户可以怎样使用这些资源(role)。

       使用者相关术语:user & group

       user是拥有账号的独立个体,group表示一组有着共同点的user,这里的共同点是指对某个资源具有相同的权限。

      

       资源相关术语:domain & project

       project也是以前版本中的tenant,它包含了一个资源集合,这里的资源包括image、server、network等等(注意每一个资源都属于某个service,例如一个image资源肯定属于glance service,server资源也就是虚拟机属于nova service);

       domain是project、user和group的一个大的容器,包含了project集合和使用者集合;domain可以看做一个命名空间,全局唯一。


       权限赋予相关术语:role & role assignment

       role定义了role或者group可获得的操作权限;当role指派给一个user或group时,必须同时指定这个权限作用于哪个资源;role可以分为project级别和domain级别;role常见值为admin和user,你也可以在各个服务的policy.js中自定义一个新的权限。我会在之后解释rule的部分解读部分/etc/keystone/policy.js的内容;

       role assignment 可看做一个三元组<role,resource,identity>,将使用者与特定资源进行映射,并定义了这个映射的权限;举个例子,一个三元组<admin,project1, user1> 表达的意思是user1对project1内资源的操作权限为admin,这个权限赋予中的role是project级别的;换个例子,一个三元组<user, default domain, group1={u1,u2,u3}>所表达的意思是一组用户u1,u2,u3对default domain中的所有资源具备user权限。


       使用者-资源-权限之间关系的补充说明

       定义一个user或group时,必须指定其所属domain,user和group的命名只需要保证在所属domain内唯一即可;

       user或group在进行权限赋予时,是可以赋予其他domain内资源的操作权限;

       在定义project时,必须指明其所属domain,否则默认为default domain,一个project的命名在domain内部唯一;

       我们在创建资源(image, server, network等)时,必须指明其所属的project与domain;

       role的命名必须全局唯一。


       数据模型中的其他术语-TOKEN

      Token:user在提交请求的同时提交用户名和密码用于认证,身份认证通过后keystone就会返回给用户一个具有有效期的token(一长串字符串),在用户本地缓存这个token,在有效期范围内,用户可以通过token直接实现对授权资源的单点登陆;token有4种:UUID、PKI、PKIZ 和 fernet token;下面简单介绍一下这四种token,目前Mitaka官网安装说明中配置的是fernet token;

        UUID token:每个服务API收到带有UUID token的请求时,必须拿着这个token到keystone进行验证token的合法性,验证通过之后才能响应用户请求;随着集群规模的扩大,Keystone 需处理大量验证UUID token 的请求,在高并发下容易出现性能问题;

       PKI token:携带更多用户信息并附上了数字签名,服务API收到PKI token时无需再去keystone验

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值