LDAP學習筆記圖文介紹openLDAP在windows上的安裝配置

[一]、概述

什麼叫LDAP呢,概念的東西這裏就不多講了,網上搜索下有很多,本文的重點是介紹如何在windows平臺上安裝和配置openLDAP軟件。

openLDAP官方網站:http://www.openldap.org/

openLDAP官網只提供了linux平臺的相關安裝文件,windows平臺的安裝包可以到以下一些網站下載:

  • http://www.userbooster.de/download/openldap-for-windows.aspx(本文所用的版本
  • http://sourceforge.net/projects/openldapwindows/files/
  • http://sourceforge.jp/projects/openldapwin32/releases/

[二]、測試環境

[三]、安裝過程

按照提示 一直 next ,直到安裝完成:

安裝完成後,在系統服務中,找到 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 ,內容如下:

1 dn: dc=micmiu,dc=com
2 objectclass: domain
3 objectclass: top
4 o: Michael Blog
5 dc: micmiu
6  
7 dn: ou=Developer,dc=micmiu,dc=com
8 objectclass: organizationalUnit
9 ou: Developer
10 description: Container fordeveloper entries
11  
12 dn: ou=Tester,dc=micmiu,dc=com
13 objectclass: organizationalUnit
14 ou: Tester
15 description: Container fortest entries
16  
17 dn: uid=Michael,ou=Developer,dc=micmiu,dc=com
18 uid: Michael
19 objectClass: inetOrgPerson
21 userPassword: 111111
22 labeledURI: http://www.micmiu.com
23 sn: Sun
24 cn: Michael Sun
25  
26 dn: uid=Miumiu,ou=Tester,dc=micmiu,dc=com
27 uid: Miumiu
28 objectClass: inetOrgPerson
29 userPassword: 111111
30 labeledURI: http://www.micmiu.com
31 sn: Wu
32 cn: Miumiu Wu

tips:格式要嚴格,每行的開頭和末尾不能有空格

然後在控制檯中切換到openLDAP安裝目錄下執行ldapadd命令:

1 ldapadd -x -D "cn=Manager,dc=micmiu,dc=com"-w secret -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:\Program Files (x86)\OpenLDAP\ClientTools>ldapsearch -x -b "dc=micmiu,dc=com" "(objectclas
s=*)"
dc=micmiu,dc=com
objectClass=domain
objectClass=top
o=Michael Blog
dc=micmiu

ou=Developer,dc=micmiu,dc=com
objectClass=organizationalUnit
ou=Developer
description=Container for developer entries

ou=Tester,dc=micmiu,dc=com
objectClass=organizationalUnit
ou=Tester
description=Container for test entries

uid=Michael,ou=Developer,dc=micmiu,dc=com
uid=Michael
objectClass=inetOrgPerson
[email protected]
userPassword=111111
labeledURI=http://www.micmiu.com
sn=Sun
cn=Michael Sun

uid=Miumiu,ou=Tester,dc=micmiu,dc=com
uid=Miumiu
objectClass=inetOrgPerson
userPassword=111111
labeledURI=http://www.micmiu.com
sn=Wu
cn=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 ,內容如下:

1 dn: dc=app1,dc=micmiu,dc=com
2 objectclass: domain
3 o: Michael Demo
4 dc: app1
5  
6 dn: dc=app2,dc=micmiu,dc=com
7 objectclass: domain
8 o: Michael Demo
9 dc: app2
10  
11 dn: ou=Demo,dc=app1,dc=micmiu,dc=com
12 objectclass: organizationalUnit
13 ou: Developer
14 description: Container forDemo entries
15  
16 dn: ou=Demo,dc=app2,dc=micmiu,dc=com
17 objectclass: organizationalUnit
18 ou: Developer
19 description: Container forDemo entries
20  
21 dn: uid=michael,ou=Demo,dc=app1,dc=micmiu,dc=com
22 uid: admin
23 objectClass: inetOrgPerson
25 userPassword: 111111
26 labeledURI: http://www.micmiu.com
27 sn: Sun
28 cn: Michael Sun
29  
30 dn: uid=hazel,ou=Demo,dc=app1,dc=micmiu,dc=com
31 uid: user
32 objectClass: inetOrgPerson
33 userPassword: 111111
34 labeledURI: http://www.micmiu.com
35 sn: Wu
36 cn: Hazel Wu
37  
38 dn: uid=michael,ou=Demo,dc=app2,dc=micmiu,dc=com
39 uid: admin
40 objectClass: inetOrgPerson
42 userPassword: 111111
43 labeledURI: http://www.micmiu.com
44 sn: Sun
45 cn: Michael Sun
46  
47 dn: uid=hazel,ou=Demo,dc=app2,dc=micmiu,dc=com
48 uid: user
49 objectClass: inetOrgPerson
50 userPassword: 111111
51 labeledURI: http://www.micmiu.com
52 sn: Wu
53 cn: Hazel Wu

tips:注意dc的對應關係,如下圖:

然後在控制檯窗口中執行ldapadd命令:

ldapadd -x -D "cn=Manager,dc=micmiu,dc=com" -w secret -f ./myappuser.ldif

添加成功會顯示如下信息:

如果 ldapadd 命令無法運行,先停止slapd 服務,然後在控制檯中切換到openLDAP安裝目錄下執行命令:

slapadd -v -l ./myappuser.ldif

客戶端工具中可以查詢到相關信息:

ok,本文到此已經基本介紹完了,以後再詳細介紹如何用Java實現對LDAP的相關操作。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章