技术开发 频道

OpenStack Keystone与只读LDAP集成

  【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)。

  一个服务会提供一个或多个接入点,使用户可以用来访问资源以及执行相应的操作。

5
相关文章