这篇文章是众多网上资料中写得很详细,所以特此转载,非常感谢原作者,附上原链接:
http://www.micmiu.com/enterprise-app/sso/openldap-windows-config/
目录
[一]、概述
什么叫LDAP呢,概念的东西这里就不多讲了,网上搜索下有很多,本文的重点是介绍如何在windows平台上安装和配置openLDAP软件。
openLDAP官方网站:http://www.openldap.org/
openLDAP官网只提供了linux平台的相关安装文件,windows平台的安装包可以到以下一些网站下载:
[二]、测试环境
[三]、安装过程
按照提示 一直 next ,直到安装完成:
安装完成后,在系统服务中,找到 OpenLDAP Service,先停止服务,再把启动类型修改成手动,便于自己的测试。
[四]、配置启动
安装目录:D:\Program Files (x86)\OpenLDAP
编辑文件:D:\Program Files (x86)\OpenLDAP\slapd.conf 找到如下内容:
1
2
|
suffix
"dc=maxcrc,dc=com"
rootdn
"cn=Manager,dc=maxcrc,dc=com"
|
修改成:
1
2
|
suffix
"dc=micmiu,dc=com"
rootdn
"cn=Manager,dc=micmiu,dc=com"
|
打开控制台,切换到openLDAP安装目录下,启动openLDAP,命令如下:
1
|
slapd
-
d
1
|
会在控制台看到类似如下的日志信息:
日志信息:slapd starting 表示服务已经启动好了。
新建一个文件:D:\Program Files (x86)\OpenLDAP\mydemo.ldif ,内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
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
for
developer
entries
dn
:
ou
=
Tester
,
dc
=
micmiu
,
dc
=
com
objectclass
:
organizationalUnit
ou
:
Tester
description
:
Container
for
test
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命令:
1
|
ldapadd
-
x
-
D
"cn=Manager,dc=micmiu,dc=com"
-
w
secret
-
f
.
/
mydemo
.
ldif
|
参数说明:
添加成功会显示如下信息:
!!!有网友说:按照我上面的命令,提示:’ldapadd’ 不是内部或外部命令,也不是可运行的程序或批处理文件。经过我的验证发现,该windows版本的openLDAP确实没有这个命令,我能执行成功是因为本机安装过oracle,而Oracle自带安装了LDAP client的一些常用命令。
如果没有”ldapadd“这个命令,还可以用它自带的命令“slapadd”代替导入数据文件。不过要注意的是:和ldapadd命令不同的是:执行slapadd命令前需要先停止之前启动的 slapd 服务(打开服务确定停止了该服务),然后在控制台中切换到openLDAP安装目录下执行命令:
1
|
slapadd
-
v
-
l
.
/
mydemo
.
ldif
|
运行结果如下:
ldapadd 和 slapadd 的差异:
验证添加的信息,在控制台中,切换到%OpenLDAP_HOME%/ClientTools 输入查询命令:
1
|
ldapsearch
-
x
-
b
"dc=micmiu,dc=com"
"(objectclass=*)"
|
查询结果如下:
12345678910111213141516171819202122232425262728293031323334 D : \ Program Files ( x86 ) \ OpenLDAP \ ClientTools & gt ; ldapsearch - x - b "dc=micmiu,dc=com" "(objectclass=*)"dc = micmiu , dc = comobjectClass = domainobjectClass = topo = Michael Blogdc = micmiuou = Developer , dc = micmiu , dc = comobjectClass = organizationalUnitou = Developerdescription = Container for developer entriesou = Tester , dc = micmiu , dc = comobjectClass = organizationalUnitou = Testerdescription = Container for test entriesuid = Michael , ou = Developer , dc = micmiu , dc = comuid = MichaelobjectClass = inetOrgPersonmail = sjsky_007 @ gmail . comuserPassword = 111111labeledURI = http : //www.micmiu.comsn = Suncn = Michael Sunuid = Miumiu , ou = Tester , dc = micmiu , dc = comuid = MiumiuobjectClass = inetOrgPersonuserPassword = 111111labeledURI = http : //www.micmiu.comsn = Wucn = Miumiu Wu
验证成功。
[五]、客户端介绍
网上搜索到一个客户端:LdapBrowser282 附件提供相关下载:LdapBrowser282.zip
下载解压后直接双击:lbe.bat 文件即可运行。
点击上图中的 Fetch DNs 按钮会自动获取相关的DN信息的。上面的输入的密码就是之前安装过程中的那个密码(如果自己没有修改过)
可以正确查询到之前添加的相关信息。
[六]、多级DC的ldif文件的配置
在实际应用中我们经常会碰到二级域名,类似:app1.micmiu.com、app2.micmiu.com,那么对应到LDAP中的DC就是多级,这时我们ldif文件又是如何配置呢?下面将给出个示例演示,新建一个文件:D:\Program Files (x86)\OpenLDAP\myappuser.ldif ,内容如下:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 dn : dc = app1 , dc = micmiu , dc = comobjectclass : domaino : Michael Demodc : app1dn : dc = app2 , dc = micmiu , dc = comobjectclass : domaino : Michael Demodc : app2dn : ou = Demo , dc = app1 , dc = micmiu , dc = comobjectclass : organizationalUnitou : Developerdescription : Container for Demo entriesdn : ou = Demo , dc = app2 , dc = micmiu , dc = comobjectclass : organizationalUnitou : Developerdescription : Container for Demo entriesdn : uid = michael , ou = Demo , dc = app1 , dc = micmiu , dc = comuid : adminobjectClass : inetOrgPersonmail : sjsky_007 @ gmail . comuserPassword : 111111labeledURI : http : //www.micmiu.comsn : Suncn : Michael Sundn : uid = hazel , ou = Demo , dc = app1 , dc = micmiu , dc = comuid : userobjectClass : inetOrgPersonuserPassword : 111111labeledURI : http : //www.micmiu.comsn : Wucn : Hazel Wudn : uid = michael , ou = Demo , dc = app2 , dc = micmiu , dc = comuid : adminobjectClass : inetOrgPersonmail : sjsky_007 @ gmail . comuserPassword : 111111labeledURI : http : //www.micmiu.comsn : Suncn : Michael Sundn : uid = hazel , ou = Demo , dc = app2 , dc = micmiu , dc = comuid : userobjectClass : inetOrgPersonuserPassword : 111111labeledURI : http : //www.micmiu.comsn : Wucn : Hazel Wutips:注意dc的对应关系,如下图:
然后在控制台窗口中执行ldapadd命令:
1 ldapadd - x - D "cn=Manager,dc=micmiu,dc=com" - w secret - f . / myappuser . ldif添加成功会显示如下信息:
如果 ldapadd 命令无法运行,先停止slapd 服务,然后在控制台中切换到openLDAP安装目录下执行命令:
1 slapadd - v - l . / myappuser . ldif客户端工具中可以查询到相关信息:
ok,本文到此已经基本介绍完了,以后再详细介绍如何用Java实现对LDAP的相关操作
注意:
用LDAPadmin工具登陆以后,需要对用户进行设置密码,访问时需要用到。