openldap for windows是一款自由开源的轻量级目录访问协议。openldap主要基于X.500标准建立,由slapd(独立LDAP守护服务)、slurpd(独立的LDAP更新复制守护服务)、实现LDAP协议的库、工具软件和示例客户端四个部分注册,基础功能丰富,还可以根据自我需求定制额外扩展功能,支持TCP/IP协议等。

OpenLDAP目录中的信息是以树状的层次结构来存储数据(这很类同于DNS),最顶层即根部称作“基准DN”,形如“dc=mydomain,dc=org”或者“o=mydomain.org”,前一种方式更为灵活也是Windows AD中使用的方式。在根目录的下面有很多的文件和目录,为了把这些大量的数据从逻辑上分开,OpenLDAP像其它的目录服务协议一样使用OU(Organization Unit,组织单元),可以用来表示公司内部机构,如部门等,也可以用来表示设备、人员等。同时OU还可以有子OU,用来表示更为细致的分类。
OpenLDAP中每一条记录都有一个唯一的区别于其它记录的名字DN(Distinguished Name),其处在“叶子”位置的部分称作RDN(用户条目的相对标识名)。如dn:cn=tom,ou=animals,dc=ilanni,dc=com中cn即为RDN,而RDN在一个OU中必须是唯一的。
OpenLDAP默认以Berkeley DB作为后端数据库,BerkeleyDB数据库主要以散列的数据类型进行数据存储,如以键值对的方式进行存储。
它主要包括下述4个部分:
slapd - 独立LDAP守护服务
slurpd - 独立的LDAP更新复制守护服务
实现LDAP协议的库
工具软件和示例客户端

同意软件协议

选择安装地址

继续选择next

填写相关内容

选择BOB

安装完成

安装完成后,在系统服务中,找到 OpenLDAP Service,先停止服务,再把启动类型修改成手动,便于自己的测试。
编辑文件:D:\Program Files (x86)\OpenLDAP\slapd.conf 找到如下内容:
1 suffix "dc=maxcrc,dc=com"
2 rootdn "cn=Manager,dc=maxcrc,dc=com"
修改成:
1 suffix "dc=micmiu,dc=com"
2 rootdn "cn=Manager,dc=micmiu,dc=com"
打开控制台,切换到openLDAP安装目录下,启动openLDAP,命令如下:
1 slapd -d 1
会在控制台看到类似如下的日志信息:

日志信息:slapd starting 表示服务已经启动好了。
新建一个文件:D:\Program Files (x86)\OpenLDAP\mydemo.ldif ,内容如下:
dn:dc=micmiu,dc=com
objectclass:domain
objectclass:top
o:Michael Blog
dc:micmiu
dn:ou=Developer,dc=micmiu,dc=com
objectclass:organizationalUnit
ou:Developer
description:Container fordeveloper entries
dn:ou=Tester,dc=micmiu,dc=com
objectclass:organizationalUnit
ou:Tester
description:Container fortest entries
dn:uid=Michael,ou=Developer,dc=micmiu,dc=com
uid:Michael
objectClass:inetOrgPerson
mail:sjsky_007@gmail.com
userPassword:111111
labeledURI:http://www.micmiu.com
sn:Sun
cn:Michael Sun
dn:uid=Miumiu,ou=Tester,dc=micmiu,dc=com
uid:Miumiu
objectClass:inetOrgPerson
userPassword:111111
labeledURI:http://www.micmiu.com
sn:Wu
cn:Miumiu Wu
tips:格式要严格,每行的开头和末尾不能有空格
然后在控制台中切换到openLDAP安装目录下执行ldapadd命令:
ldapadd-x-D"cn=Manager,dc=micmiu,dc=com"-wsecret -f./mydemo.ldif
参数说明:
-x 使用简单验证方式
-D 指定管理员DN(与slapd.conf中配置的一致)
-W 大写W表示回车后根据提示输入密码,可以使用小写的-w password 直接输入密码
-f 需要导入数据LDIF的文件名
-h 目录服务器的IP地址
添加成功会显示如下信息:

!!!有网友说:按照我上面的命令,提示:’ldapadd’ 不是内部或外部命令,也不是可运行的程序或批处理文件。经过我的验证发现,该windows版本的openLDAP确实没有这个命令,我能执行成功是因为本机安装过oracle,而Oracle自带安装了LDAP client的一些常用命令。
如果没有”ldapadd“这个命令,还可以用它自带的命令“slapadd”代替导入数据文件。不过要注意的是:和ldapadd命令不同的是:执行slapadd命令前需要先停止之前启动的 slapd 服务(打开服务确定停止了该服务),然后在控制台中切换到openLDAP安装目录下执行命令:
1 slapadd -v -l ./mydemo.ldif
运行结果如下:

ldapadd 和 slapadd 的差异:
ldapadd 对本地和远程服务都可以操作,操作时LDAP服务是不能停止
slapadd 只能对本地的LDAP服务进行操作,操作时本地LDAP服务必须先停止
验证添加的信息,在控制台中,切换到%OpenLDAP_HOME%/ClientTools 输入查询命令:
1 ldapsearch -x -b "dc=micmiu,dc=com" "(objectclass=*)"
查询结果如下:
D:\ProgramFiles (x86)\OpenLDAP\ClientTools>ldapsearch-x-b"dc=micmiu,dc=com" "(objectclass=*)"
dc=micmiu,dc=com
objectClass=domain
objectClass=top
o=MichaelBlog
dc=micmiu
ou=Developer,dc=micmiu,dc=com
objectClass=organizationalUnit
ou=Developer
description=Containerfor developerentries
ou=Tester,dc=micmiu,dc=com
objectClass=organizationalUnit
ou=Tester
description=Containerfor testentries
uid=Michael,ou=Developer,dc=micmiu,dc=com
uid=Michael
objectClass=inetOrgPerson
mail=sjsky_007@gmail.com
userPassword=111111
labeledURI=http://www.micmiu.com
sn=Sun
cn=MichaelSun
uid=Miumiu,ou=Tester,dc=micmiu,dc=com
uid=Miumiu
objectClass=inetOrgPerson
userPassword=111111
labeledURI=http://www.micmiu.com
sn=Wu
cn=MiumiuWu
验证成功。


点击上图中的 Fetch DNs 按钮会自动获取相关的DN信息的。

上面的输入的密码就是之前安装过程中的那个密码(如果自己没有修改过)


可以正确查询到之前添加的相关信息。

【基本介绍】
OpenLDAP可以直接运行在更简单和更通用的TCP/IP或其他可靠的传输协议层上,避免了在OSI会话层和表示层的开销,使连接的建立和包的处理更简单、更快,对于互联网和企业网应用更理想。OpenLDAP目录中的信息是以树状的层次结构来存储数据(这很类同于DNS),最顶层即根部称作“基准DN”,形如“dc=mydomain,dc=org”或者“o=mydomain.org”,前一种方式更为灵活也是Windows AD中使用的方式。在根目录的下面有很多的文件和目录,为了把这些大量的数据从逻辑上分开,OpenLDAP像其它的目录服务协议一样使用OU(Organization Unit,组织单元),可以用来表示公司内部机构,如部门等,也可以用来表示设备、人员等。同时OU还可以有子OU,用来表示更为细致的分类。
OpenLDAP中每一条记录都有一个唯一的区别于其它记录的名字DN(Distinguished Name),其处在“叶子”位置的部分称作RDN(用户条目的相对标识名)。如dn:cn=tom,ou=animals,dc=ilanni,dc=com中cn即为RDN,而RDN在一个OU中必须是唯一的。
OpenLDAP默认以Berkeley DB作为后端数据库,BerkeleyDB数据库主要以散列的数据类型进行数据存储,如以键值对的方式进行存储。
【组成部分】
OpenLDAP是轻型目录访问协议(Lightweight Directory Access Protocol,LDAP)的自由和开源的实现,在其OpenLDAP许可证下发行,并已经被包含在众多流行的Linux发行版中。它主要包括下述4个部分:
slapd - 独立LDAP守护服务
slurpd - 独立的LDAP更新复制守护服务
实现LDAP协议的库
工具软件和示例客户端
【安装教程】
打开安装界面,选择next
同意软件协议

选择安装地址

继续选择next

填写相关内容

选择BOB

安装完成

安装完成后,在系统服务中,找到 OpenLDAP Service,先停止服务,再把启动类型修改成手动,便于自己的测试。
【配置启动】
安装目录:D:\Program Files (x86)\OpenLDAP编辑文件:D:\Program Files (x86)\OpenLDAP\slapd.conf 找到如下内容:
1 suffix "dc=maxcrc,dc=com"
2 rootdn "cn=Manager,dc=maxcrc,dc=com"
修改成:
1 suffix "dc=micmiu,dc=com"
2 rootdn "cn=Manager,dc=micmiu,dc=com"
打开控制台,切换到openLDAP安装目录下,启动openLDAP,命令如下:
1 slapd -d 1
会在控制台看到类似如下的日志信息:

日志信息:slapd starting 表示服务已经启动好了。
新建一个文件:D:\Program Files (x86)\OpenLDAP\mydemo.ldif ,内容如下:
dn:dc=micmiu,dc=com
objectclass:domain
objectclass:top
o:Michael Blog
dc:micmiu
dn:ou=Developer,dc=micmiu,dc=com
objectclass:organizationalUnit
ou:Developer
description:Container fordeveloper entries
dn:ou=Tester,dc=micmiu,dc=com
objectclass:organizationalUnit
ou:Tester
description:Container fortest entries
dn:uid=Michael,ou=Developer,dc=micmiu,dc=com
uid:Michael
objectClass:inetOrgPerson
mail:sjsky_007@gmail.com
userPassword:111111
labeledURI:http://www.micmiu.com
sn:Sun
cn:Michael Sun
dn:uid=Miumiu,ou=Tester,dc=micmiu,dc=com
uid:Miumiu
objectClass:inetOrgPerson
userPassword:111111
labeledURI:http://www.micmiu.com
sn:Wu
cn:Miumiu Wu
tips:格式要严格,每行的开头和末尾不能有空格
然后在控制台中切换到openLDAP安装目录下执行ldapadd命令:
ldapadd-x-D"cn=Manager,dc=micmiu,dc=com"-wsecret -f./mydemo.ldif
参数说明:
-x 使用简单验证方式
-D 指定管理员DN(与slapd.conf中配置的一致)
-W 大写W表示回车后根据提示输入密码,可以使用小写的-w password 直接输入密码
-f 需要导入数据LDIF的文件名
-h 目录服务器的IP地址
添加成功会显示如下信息:

!!!有网友说:按照我上面的命令,提示:’ldapadd’ 不是内部或外部命令,也不是可运行的程序或批处理文件。经过我的验证发现,该windows版本的openLDAP确实没有这个命令,我能执行成功是因为本机安装过oracle,而Oracle自带安装了LDAP client的一些常用命令。
如果没有”ldapadd“这个命令,还可以用它自带的命令“slapadd”代替导入数据文件。不过要注意的是:和ldapadd命令不同的是:执行slapadd命令前需要先停止之前启动的 slapd 服务(打开服务确定停止了该服务),然后在控制台中切换到openLDAP安装目录下执行命令:
1 slapadd -v -l ./mydemo.ldif
运行结果如下:

ldapadd 和 slapadd 的差异:
ldapadd 对本地和远程服务都可以操作,操作时LDAP服务是不能停止
slapadd 只能对本地的LDAP服务进行操作,操作时本地LDAP服务必须先停止
验证添加的信息,在控制台中,切换到%OpenLDAP_HOME%/ClientTools 输入查询命令:
1 ldapsearch -x -b "dc=micmiu,dc=com" "(objectclass=*)"
查询结果如下:
D:\ProgramFiles (x86)\OpenLDAP\ClientTools>ldapsearch-x-b"dc=micmiu,dc=com" "(objectclass=*)"
dc=micmiu,dc=com
objectClass=domain
objectClass=top
o=MichaelBlog
dc=micmiu
ou=Developer,dc=micmiu,dc=com
objectClass=organizationalUnit
ou=Developer
description=Containerfor developerentries
ou=Tester,dc=micmiu,dc=com
objectClass=organizationalUnit
ou=Tester
description=Containerfor testentries
uid=Michael,ou=Developer,dc=micmiu,dc=com
uid=Michael
objectClass=inetOrgPerson
mail=sjsky_007@gmail.com
userPassword=111111
labeledURI=http://www.micmiu.com
sn=Sun
cn=MichaelSun
uid=Miumiu,ou=Tester,dc=micmiu,dc=com
uid=Miumiu
objectClass=inetOrgPerson
userPassword=111111
labeledURI=http://www.micmiu.com
sn=Wu
cn=MiumiuWu
验证成功。
【使用方法】
下载解压后直接双击:lbe.bat 文件即可运行。

点击上图中的 Fetch DNs 按钮会自动获取相关的DN信息的。

上面的输入的密码就是之前安装过程中的那个密码(如果自己没有修改过)


可以正确查询到之前添加的相关信息。

