0%

OpenLDAP安装、错误解决及Python下的LDAP认证

假如你是Windows或者Mac系统,请略过本文,本文主要是面向Linux用户 :)。

以前没有用过LDAP,这次因为需要做一个基于LDAP的认证,所以拿出来看了看。

本来一直在自己电脑上都没有问题的,但是发现到了Linux下就出现了很大的问题,OpenLDAP安装不过(只有Linux需要这个)。

OpenLDAP的安装很奇怪,默认需要一个Berkeley DB,这个数据库之前没用过,大概见过,但是从Oracle官网下载了最新版本,发现和OpenLDAP的最新版本放在一起发现不可以,提示mismath。

WTF?网上查找了一下,发现是OpenLDAP对DB数据库版本要求比较严,基本上一个版本对应一个版本数据库,这不是扯呢吗?!

仔细看了一下configure参数,发现其实是可以替换掉数据库设置的:

./configure –enable-backends=no –enable-mdb=yes

make depend

make

make install
即可完成安装,使用mdb数据库,会牺牲一定性能。

然后安装Python-LDAP

pip install Python-LDAP
但是使用时发现出现了问题:import ldap时会报错提示so文件导出找不到。这个问题作者说是他当时写死了自己的路径,导致路径不对了,因此还需要手工修正这个问题。

下载Python-LDAP,修改Setup.cfg文件,若上步未指定路径,则lib和include路径分别为/usr/local/lib和/usr/local/include。

接下来就可以使用LDAP认证了:

import ldap
conn = ldap.initialize('ldap://host:port')
try:
    conn.simple_bind_s('domain\username', 'password')
except ldap.SERVERDOWM:
    print "Connected failed!"
except:
    print "Authorized failed!"