在本文中,我们将展示如何安装在Amazon EC2虚拟机上运行的OpenLDAP实例,设置Apache / LDAP身份验证,然后使用Python执行CRUD或创建,读取,更新和删除操作。 重要的是要注意,LDAP可以安装在Fedora,Ubuntu,Red Hat,AIX®等上。 但是,出于本文的目的,我们决定专注于Amazon EC2虚拟机。 您可以在家中使用任何Linux®发行版或任何方便的环境。 最后,我们在文章中介绍了许多代码和复杂的技术。 您可能想从一开始就下载示例代码 ,并在阅读本文时将其放在方便的位置。
以编程方式控制LDAP通常与sysadmin相关的工作相关联,因此,不应该存在一个库来使用Python中的LDAP。 python-ldap模块已经存在了很长一段时间,并且在参考资料小节中有指向官方文档的链接。
我们假定您熟悉常规LDAP概念,例如目录架构,专有名称(DN),公用名(CN)以及过滤器和属性的概念。 本文不是LDAP教程。 我们宁愿少谈理论,而多谈使用和管理LDAP数据库的实际示例。
初始LDAP设置和填充
如果您想按照本文的LDAP设置部分进行操作,则需要一个Fedora Core 8实例。在本例中,我们使用了一个运行32位Fedora Core 8的Amazon EC2计算机实例。 您还可以使用所选技术将OpenLDAP安装到物理服务器或虚拟机上。 请注意,尽管存在一个建议使用example.com的RFC,但我们在所有示例中都使用了一个名为unisonis.com的示例域。
步骤1:使用yum安装openldap软件包:
[root@domU ]# yum install openldap openldap-devel
openldap-servers openldap-clients
[root@domU ]# yum list installed | grep openldap
openldap.i386 2.3.39-4.fc8 installed
openldap-clients.i386 2.3.39-4.fc8 installed
openldap-devel.i386 2.3.39-4.fc8 installed
openldap-servers.i386 2.3.39-4.fc8 installed
步骤2:设置管理员密码(我们将SSHA哈希值粘贴到slapd.conf中)。 请注意,slapd代表独立LDAP服务,因此这是控制LDAP本身的服务:
[root@domU ]# slappasswd
New password:
Re-enter new password:
步骤3:编辑slapd.conf配置文件,并添加与常规LDAP安装有关的条目,例如根DN和根/管理员密码:
[root@domU ]# vi /etc/openldap/slapd.conf
#Add entries:
database bdb
suffix "dc=unisonis,dc=com"
rootdn "cn=Manager,dc=unisonis,dc=com"
rootpw {SSHA}pasted_from_slappasswd_output
director