技术开发 频道

OpenStack Keystone与只读LDAP集成

  代码清单二:在keystone.conf中配置自定义LDAP后端

  配置LDAP后端:

  [ldap]

  url
= ldap://ldap.your.com

  user
= ou=Users,dc=your,dc=com

  suffix
= dc=your,dc=com

  query_scope
= sub

  user_tree_dn
= ou=Users,dc=your,dc=com

  user_objectclass
= inetOrgPerson

  user_domain_id_attribute
= businessCategory

  user_id_attribute
= cn

  user_name_attribute
= sn

  user_mail_attribute
= email

  user_pass_attribute
= userPassword

  user_allow_create
= False

  user_allow_update
= False

  user_allow_delete
= False

  tenant_tree_dn
= ou=Groups,dc=example,dc=com

  tenant_objectclass
= groupOfNames

  tenant_domain_id_attribute
= businessCategory

  tenant_id_attribute
= cn

  tenant_name_attribute
= ou

  tenant_domain_id_attribute
= co

  tenant_id_attribute
= dept

  tenant_name_attribute
= dept

  tenant_allow_create
= False

  tenant_allow_update
= False

  tenant_allow_delete
= False

  代码清单三:在keystone.conf中配置原LDAP后端

  同步LDAP用户帐号

  由于本示例自定义后端没有自定义user、tenant等的创建、修改、删除等方法,因此需要手工同步已有LDAP中的用户帐号。

  同步帐号有多种方法,比如利用自定义后端中保留的本地admin帐号,可以通过keystone的Rest API利用脚本自动同步,或直接通过admin帐号手工创建。

  测试及结果

  本示例,目的仅是验证该自定义LDAP后端的可行性,因此仅通过admin帐号手工同步少数LDAP进行验证。

  下图为LDAP帐号liuclbj@cn.ibm.com创建本地记录。

  注意:密码处可随意填写,在自定义后端中,仅需要MySQL中有该用户存在,并且配置有相应的项目及角色,实际验证时则是通过LDAP验证。因此该处的密码无效。


▲图 2. 手工将LDAP帐号添加到Keystone

  帐号创建成功以后,可以退出当前的admin帐号,测试以LDAP帐号登陆。

  下图为成功登录后:


▲图 3. 以LDAP帐号成功登录

  总结

  通过上面的简单示例,我们可以验证自定义keystone验证后端的可行性,以此展现OpenStack的灵活性及或扩展性。当然,本文仅是一个简化的可行性验证,在实际企业组织中,根据组织自身的需求不同,可以自定义一个功能丰富并且完整的验证后端,以实现和满足企业内部自身的需求。

  通过本文,仅希望能够以细微的需求来展现OpenStack作为一个云计算平台的开放性、灵活性以及易扩展性。以期能起到抛砖引玉的效果。

  作者简介:

在keystone.conf中配置自定义LDAP后端

  刘成龙

  IT工程师

  任职于某大型外资IT企业,参与企业私有云基础架构设计、私有云部署,具有丰富的IT基础架构、虚拟化及孕计算经验,熟悉主流的虚拟化技术,熟悉IBM的x86架构服务器、刀片服务器和磁盘存储产品。

5
相关文章