了解和使用keystone(一)keystone的基本认知

为啥想起要求了解keystone

想起keystone,并不是因为openstack,我目前没有参与涉及DC的项目。但是作为openstack的管理身份验证、服务规则和服务令牌功能的模块,可以对中性以上的项目给予帮助。因此就花了点时间来看keystone,目标是了解并在项目中使用keystone,这和在keystone开源的基础上开发自己数据中心的网上的资料总和openstack相关联。实际上keystone是基于数据库对外提供的Restful接口,实现两大功能:

  • 表格数据的增删改查,而数据库中通过domain、project、user、role、service、endpoint提供一系列的内在逻辑关系。
  • 基于密码获取令牌以及令牌验证的机制。

对于domain、project、user、role、service、endpoint这些可以映射到我们项目的各个模块和设备,映射到它们相互之间的关系。

为何用keystone

在认证方面,server和client的方式可以考虑微信接口类似校验方式,一般业务约定某个key(token或者secret,看怎么交付),对内容进行签名,对于关键业务(微信中的设置菜单),采用https,通过另一个约定key,获取有时间限制的token,进行签名。

和keystone相比,这是接口没有描述token生产和管理的过程,只是给出了如何通过token进行校验,属于client和server之间的校验,对于keystone的明文传递,更适合于Internet上的传递。当keystone更适合管理多模块之间互动,而不是单一的client和server的简单关系。keystone适合内网的处理,如果中间涉及internet,需要增加NGINX来提供https。


你可能感兴趣的:(开发日志)