windows环境,如何安装openldap?如何修改默认密码
发布于 作者:苏南大叔 来源:程序如此灵动~
首先,ldap是个协议,它的名称是“轻量级目录访问协议”。实现这个协议的软件很多,其实免费并且实用的那款就叫做“openldap”。对于拿来练手的新人来说,这款openldap软件就很适合。本文记录windows环境下,openldap安装及初步配置使用问题。

苏南大叔的“程序如此灵动”博客,记录苏南大叔的编程相关经验文章。本文测试环境:win10,openldap@2.4.32。非windows环境下,openldap的安装是比较简单的。但是,windows环境下,就需要过五关斩六将了。
ldap协议
LDAP全称:Lightweight Directory Access Protocol,即“轻量级目录访问协议”。
Directory Server就是一种树状存储结构的数据库,这棵树上的每一个节点都是一条数据,这类数据库针对浏览和搜索操作进行了特定的优化。使用Directory Server来存储具有层级关系的数据非常直观,如用于管理公司的人员架构、公司的服务器网络架构等。
很多大厂都实现了自己的Directory Server,如UnboundID Directory Server、Oracle Internet Directory、Oracle Unified Directory、Microsoft Active Directory、IBM Security Directory Server等。同样也有一些开源的实现,如OpenLDAP、ForgeRock OpenDJ、Apache DS、389 Directory Server等。
安装openldap
openldap for windows的安装过程,简直不要太曲折。官方网站如下:
截至到发稿,openldap的最新版本是2.6.7,长期支持版本是2.5.17。然而官方网站上提供的仅仅是源码下载(这也是开源软件的常态)。windows下字节编译版本的下载地址:

上面的地址下载到的最新版2.6.6并不能顺利安装,要注册码。根据网上的信息,这个注册码是需要和官方写邮件要的,要等很久才能拿到,简直不能太难为人。参考讨论帖:
安装过程中需要序列号,但是苏南大叔合理怀疑:仅仅是安装过程要序列号。安装完的还是个绿色版本,不需要序列号。

经过综合考虑,最后下载安装的是:openldap@2.4.32。下载地址是:

目录结构
安装后得到的目录结构如下:

- 配置文件目录:
/etc/。 - 主程序目录:
/libexec/。 - 普通的工具文件目录:
/bin/。 - 管理员专用的工具文件目录:
/sbin/。 - C语言调用的头文件目录:
/include/和/lib/。 - 其它日志变量类目录:
/var/。
查看版本号
openldap -V返回值为:
@(#) $OpenLDAP: slapd 2.4.32 (Nov 24 2012 16:44:26) $
@LONDON:/src/openldap-2.4.32/servers/slapd启动openldap
经过不断的信息比对,苏南大叔觉得这款openldap的各个版本之间的目录变动比较大。所以,大家请分析着看后面的内容。
启动这款openldap,方法是命令行启动:
libexec/StartLDAP.cmd
默认密码
参考配置文件:\etc\openldap\slapd.conf,需要修改的密码就是:rootpw。

这个openldap的使用方式和其它的各种需要登陆的开源软件们很不同。除了用户名密码的概念外,还存在着“dc”等概念。默认取值是:dc=my-domain,dc=com。
其binddn(可以理解为通常的登陆用户名)默认值是:cn=Manager,dc=my-domain,dc=com。对应的密码明文是:secret。
测试连接
在这里,苏南大叔使用ldapwhoami程序进行测试:
ldapwhoami -x -D "cn=Manager,dc=my-domain,dc=com" -W输入密码,显示:
dn:cn=Manager,dc=my-domain,dc=com测试成功!

修改默认密码
先修改一下默认的密码信息,需要先使用sbin/slappasswd.exe这个工具,计算一个加密的密码出来。例如:
slappasswd -s 12345把拿到的加密密码放到配置文件中,然后再启动命令行即可。

端口号
监听两个端口号,389和636,分别是ldap协议和ldaps协议,这就类似http的80端口和https的443端口。
ldap://127.0.0.1:389ldaps://127.0.0.1:636
总结
本文仅仅是对openldap有个初步的概念,后续再表述如何使用工具连接它的问题。当然,这里大家肯定还一头雾水,后续文章请参考下面的链接: