【IT168 评论】云计算已经成为炙手可热的话题,越来越多的企业已经开始了数据中心云计算化的实施规划。随着OpenStack的崛起以及迅速走红,很多企业已经将OpenStack作为自身私有云建设的首选。但是在企业内部部署OpenStack的过程中,跟企业内部现有服务进行整合的过程中也出现各种必须面对的问题。
例如企业内部统一身份验证的问题。企业内部已有成熟的LDAP服务,如何与OpenStack的验证服务进行整合,以实现统一身份验证便是一个较为普遍的问题。OpenStack现在的Grizzly版本对LDAP验证机制已经有非常好的支持。但是却对LDAP服务有较为严苛的要求,例如需要拥有写权限,需要按照Keystone的需求建立LDAP中的组织结构及角色定义。
但是,通常成熟的LDAP服务组织结构及角色定义都已经成型不宜进行改变,并且通常只会开放只读权限,以提供身份验证服务。因此,OpenStack中对LDAP的支持并不适合那些已经拥有成熟LDAP服务的企业及组织。
本文主要向读者介绍利用OpenStack现有对SQL及LDAP验证的支持,自定义一个通过只读LDAP进行验证的混合验证后端,使OpenStack可以通过顺利通过企业内部已有的只读LDAP服务进行统一身份验证。
1) Keystone简介
Keystone是OpenStack的一个核心项目,其作用是为OpenStack其他各个组件提供统一的身份验证服务,例如nova、glance、cinder等。
Keystone的主要功能
Keystone服务主要提供两个功能:
•用户管理:记录用户信息及用户权限信息
Keystone主要通过users(用户帐号),tenants(租户),roles(权限)来进行用户管理。
而用户具体可以访问的资源,可以通过policy.json进行限制及调整。
•服务目录:提供可用可用服务的目录以及可用服务的API服务接入点。
Keystone通过services(服务),endpoints(接入点)来提供服务目录的管理。
Keystone的主要概念
在OpenStack Keystone中,主要存在以下几个重要概念:
•User:用户。
在keystone中,user是指使用OpenStack云服务的人、系统、或者服务的帐号。
•Credentials:数字凭证。
是指有用户拥有并且由用户生成的数据。例如,匹配的用户名和密码。
•Authentication:验证。
在keystone环境中,验证是指确认用户的身份或者某服务声明的真实性的行为。
在keystone服务中,keystone会首先通过数字凭证(Credential,即keystone里面所存储的用户名和密码)来进行初始验证。验证通过后,keystone服务会给用户分配一个令牌(Token)。用户即可通过该令牌进行权限范围内的后续操作。
•Token:令牌。
在keystone中,是指用来访问资源的一组随机文字。每个令牌都会描述其所能访问的资源范围。
Tenant:租户。
在keystone中,租户是用来分组或隔离资源和被管理对象的容器。该租户可以是一个组织、项目、或者一个客户。
•Service:服务。
是指一个OpenStack服务,例如计算服务(nova)、对象存储服务(swift)或者镜像服务(Glance)。
一个服务会提供一个或多个接入点,使用户可以用来访问资源以及执行相应的操作。