本文展示了如何配置 Keystone,以便使用轻量级目录http://www.aliyun.com/zixun/aggregation/34570.html">访问协议( LDAP)服务器作为其身份服务的后端,而不是使用默认的 SQL 后端。

开源的 OpenStack 项目为构建公共云和私有云提供了一个基础架构即服务(IaaS)层。企业、服务提供商、增值分销商、中小型企业、研究人员和全球数据中心都使用 OpenStack 来部署大型私有云或公共云。

轻量级目录访问协议(LDAP)是一个客户端/服务器协议,用于访问和管理目录信息。许多企业应用程序都使用 LDAP 作为用户身份验证的基础。(LDAP 的实现包括 IBM® Tivoli® Directory Server、Microsoft® Active Directory 和 OpenLDAP)。本文展示了如何快速、正确地启动和运行一个示例集成 OpenStack/LDAP 环境。学习如何:

使用 DevStack 安装一个 LDAP 服务器,DevStack 是一个用于构建 OpenStack 开发环境的工具。 配置 Keystone,通过 Keystone 的 LDAP 身份
驱动程序使用已安装的 LDAP 服务器。 使用 Keystone 兼容的树型结构来填充 LDAP 服务器。 使用 Keystone 的单元测试库来测试基于 LDAP 的 Keystone 服务。

此外,学习如何在不使用 DevStack 的情况下配置 Keystone,使用已经在生产环境中运行的 LDAP 服务器。

使用 DevStack 设置一个 LDAP 后端

自 2013 年 4 月 Grizzly 版本的 OpenStack 发布起,您可以通过标准的 OpenStack 开发环境安装工具 DevStack 将 LDAP 设置为 Keystone 后端。DevStack 是一个经过良好维护和记录的 shell 脚本,用于构建完整的 OpenStack 开发环境。

下载 DevStack 并在 devstack 根目录中创建一个名为 localrc 的文件。在 localrc 中为
OpenStack 配置用户定制内容。为了使 DevStack 能够以您的名义安装 LDAP 服务器,可以将 ldap 添加到由 localrc
中已启用的服务组成的列表中。例如

ENABLED_SERVICES=key,n-api,n-crt,n-obj,n-cpu,n-net,n-cond,cinder,c-sch,c-api,c-vol,n-sch,n-novnc,n-xvnc,n-cauth,horizon,mysql,rabbit,ldap

您还必须在 localrc 中添加以下代码行,以告知 DevStack 您希望 Keystone 使用其 LDAP 后端身份驱动程序:

KEYSTONE_IDENTITY_BACKEND = ldap

如果您希望 DevStack 清除现有的 Keystone LDAP 树并重新开始,那么可以将以下代码行添加到 localrc 文件中:

KEYSTONE_CLEAR_LDAP=yes

保存并关闭 localrc。现在运行来自 devstack 根目录的 stack.sh 脚本:

./stack.sh

运行完脚本后,您可以看到:

OpenLDAP 已被安装。 Keystone 被配置为使用其 LDAP 后端身份驱动程序。 一个初始 Keystone LDAP 树已被创建,它使用了 devstack\files\ldap\openstack.ldif 中的数据,如清单 1 所示:

清单 1. openstack.ldif 的内容

dn: dc=openstack,dc=orgdc:
openstackobjectClass: dcObjectobjectClass: organizationalUnitou:
openstackdn: ou=Groups,dc=openstack,dc=orgobjectClass:
organizationalUnitou:Groupsdn: ou=Users,dc=openstack,dc=orgobjectClass:
organizationalUnitou:Usersdn: ou=Roles,dc=openstack,dc=orgobjectClass:
organizationalUnitou:Rolesdn:
ou=Projects,dc=openstack,dc=orgobjectClass:
organizationalUnitou:Projectsdn:
cn=9fe2ff9ee4384b1894a90878d3e92bab,ou=Roles,dc=openstack,dc=orgobjectClass:
organizationalRoleou:_member_cn:9fe2ff9ee4384b1894a90878d3e92bab

LDAP 树

Keystone LDAP 后端身份驱动程序所用的示例模式假设采用了如图 1 所示的树型结构:

图 1. Keystone LDAP 后端身份驱动程序所用的示例模式

在图 1 的示例 LDAP 树中,Users、UserGroups、Projects 和 Roles 都是该树的子树,都使用了标准 LDAP ObjectClass。例如,在 Users 子树中,ObjectClass=inetOrgPerson。

配置OpenStack以使用LDAP实现身份管理的更多相关文章

  1. openstack中的身份管理

    原文:http://blog.csdn.net/xxfigo/article/details/8785748 原作者关于openstack的一系列文章http://blog.csdn.net/xxfi ...

  2. OpenStack-Ocata版+CentOS7.6 云平台环境搭建 — 2.安装配置OpenStack基础服务

    节点配置情况说明: 控制节点:controller: IP:192.168.164.128 hostname&hosts:likeadmin 计算加点:Nova: IP:192.168.164 ...

  3. ldap配置系列一:ldap的安装

    ldap的安装 ldap的简介 LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP.它是基于X.500标准的,但是简 ...

  4. Ubuntu配置OpenStack 二:配置时间同步NTP和安装数据库Maridb以及问题总结

    继上一节Ubuntu配置OpenStack 一:配置主机环境,下面继续为安装时间同步,以及配置openstack的安装包源和安装数据库Maridb.(全文截图都是由自己徒手搭建完成并且截图) 一.安装 ...

  5. 虚拟机配置Openstack常见问题汇总

    之前配置了openstack,遇到一些问题,现在将问题全部汇总记录在这里. (1)问题:主机名字修改不了: 原因:没有进入root状态:或者没有正确打开文件,要打开的是/etc/hostname,结果 ...

  6. OCM_第十六天课程:Section7 —》GI 及 ASM 安装配置 _安装 GRID 软件/创建和管理 ASM 磁盘组/创建和管理 ASM 实例

    注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...

  7. openstack 租户ip 手动配置 openstack静态租户ip

    作者:[吴业亮]云计算开发工程师 博客:http://blog.csdn.net/wylfengyujiancheng 1.综述: 在日常开发和生产环境中经常需要将OpenStack虚拟机配置一个静态 ...

  8. Azure Active Directory中的特权身份管理如何运作?

    [TechTarget中国原创] 用户权限不是平等的.有些用户需要有大量权利和特权——通常这些都是管理员.企业在允许特权用户进行管理以及支持活动时,还需要意识到特权用户也有可能犯错.他们会犯错.他们可 ...

  9. 2016.11.29 activiti实战--第19章--统一身份管理(含自定义用户与数组的实现)

    学习资料:<Activiti实战> 第十九章 统一身份管理 本章讲解如何统一业务系统与activiti的用户管理系统. 第5章的时候已经讲解过activiti的用户与组.一般来说业务系统都 ...

随机推荐

  1. PHP 7 值得期待的新特性(上)

    这是我们期待已久的 PHP 7 系列文章的第一篇. 或许你已经知道了,我在 PHP 5.0.0 时间轴 提的 RFC (Request For Comments)通过了, PHP 7 成为 PHP 下 ...

  2. HDU 2159 FATE (DP 二维费用背包)

    题目链接 题意 : 中文题不详述. 思路 : 二维背包,dp[i][h]表示当前忍耐值为i的情况下,杀了h个怪得到的最大经验值,状态转移方程: dp[i][h] = max(dp[i][h],dp[i ...

  3. POJ3122Pie(二分)

    http://poj.org/problem?id=3122 题意 :这个题最主要的就是审题要仔细,翻译不要漏句子.题目讲的是我要过生日,要给好友分馅饼(还有自己也想要一块),怕引起不公,所以每个人大 ...

  4. linux Ubuntu安装后没有引导 解决方案

    用EasyBCD添加ubuntu grub2引导,适用于12.04 及之前版本的ubuntu安装好easybcd后运行,之后看图

  5. 在RedHat5.4 LINUX 安装mySQL数据库

    linux下mysql 最新版安装图解教程 1. 查看当前安装的linux版本 通过上图中的数据可以看出安装的版本为RedHat5.4,所以我们需要下载RedHat5.4对应的mysql安装包

  6. Qt: 内建对话框(各种对话框都有了,且用到了qobject_cast解析sender的技术)

    #include "BuiltinDialog.h" #include <QtGui/QTextEdit> #include <QtGui/QPushButton ...

  7. python脚本实例002- 利用requests库实现应用登录

    #! /usr/bin/python # coding:utf-8 #导入requests库 import requests #获取会话 s = requests.session() #创建登录数据 ...

  8. Android学习Service中遇到的问题

    今天学习service,然后遇到了一个force close,log中存在这个一句话: 05-23 14:13:26.408: E/AndroidRuntime(17616): android.con ...

  9. Java面试题-并发框架

    1. SynchronizedMap和ConcurrentHashMap有什么区别?  答:java5中新增了ConcurrentMap接口和它的一个实现类ConcurrentHashMap.Conc ...

  10. javacript序列化表单数据

    在前端开发时,用到表单交互的比较多,在我们实现一些异步操作数据时,表单数据的序列化就显得尤为重要了.下面我们一起来看看如何进行序列化. 如,我们在进行提交表单时,地址栏里会显示这样的东东:name=z ...