[一]、概述
什麼叫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,命令如下:
會在控制檯看到類似如下的日誌信息:
日誌信息:slapd starting 表示服務已經啓動好了。
新建一個文件:D:\Program Files (x86)\OpenLDAP\mydemo.ldif ,內容如下:
7 |
dn: ou=Developer, dc =micmiu, dc =com |
8 |
objectclass: organizationalUnit |
10 |
description: Container for developer entries |
12 |
dn: ou=Tester, dc =micmiu, dc =com |
13 |
objectclass: organizationalUnit |
15 |
description: Container for test
entries |
17 |
dn: uid=Michael,ou=Developer, dc =micmiu, dc =com |
19 |
objectClass: inetOrgPerson |
26 |
dn: uid=Miumiu,ou=Tester, dc =micmiu, dc =com |
28 |
objectClass: inetOrgPerson |
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 |
6 |
dn: dc =app2, dc =micmiu, dc =com |
11 |
dn: ou=Demo, dc =app1, dc =micmiu, dc =com |
12 |
objectclass: organizationalUnit |
14 |
description: Container for Demo entries |
16 |
dn: ou=Demo, dc =app2, dc =micmiu, dc =com |
17 |
objectclass: organizationalUnit |
19 |
description: Container for Demo entries |
21 |
dn: uid=michael,ou=Demo, dc =app1, dc =micmiu, dc =com |
23 |
objectClass: inetOrgPerson |
30 |
dn: uid=hazel,ou=Demo, dc =app1, dc =micmiu, dc =com |
32 |
objectClass: inetOrgPerson |
38 |
dn: uid=michael,ou=Demo, dc =app2, dc =micmiu, dc =com |
40 |
objectClass: inetOrgPerson |
47 |
dn: uid=hazel,ou=Demo, dc =app2, dc =micmiu, dc =com |
49 |
objectClass: inetOrgPerson |
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的相關操作。