拾貝殼

          走過(guò)的路
          隨筆 - 39, 文章 - 1, 評(píng)論 - 14, 引用 - 0
          數(shù)據(jù)加載中……

          OpenLDAP快速上手

          OpenLDAP 快速上手

          ?? Ben 的項(xiàng)目里面要用到 OpenLDAP, 我的項(xiàng)目里面也要用到 LDAP, 所以這 2 天集中看了一下 LDAP 相關(guān)的內(nèi)容。做了個(gè)筆記,也算是為人類知識(shí)的積累做點(diǎn)或有或無(wú)的貢獻(xiàn)。

          ?? OpenLDAP 的官方站點(diǎn)是 http://www.openldap.org

          ?????? 上面有個(gè) QuickStart, 我將大致按照這個(gè)來(lái)講解。

          一、 安裝
          在官方站點(diǎn)上發(fā)布的是 linux/unix 下的 OpenLDAP 源文件,當(dāng)然也很容易找到 windows 系統(tǒng)下的版本。筆者學(xué)習(xí)安裝的就是 windows 版本的。

          二、 配置

          OpenLDAP 2 個(gè)用戶最關(guān)注的配置文件。

          一個(gè)是 slapd.conf 在他里面定義了最基本的 DN 以及管理員的賬號(hào)和密碼。

          另一個(gè)是 LDIF 的文件。在它里面可以配置所有的用戶和組織。

          1、? 我們先來(lái)了解 LDAP 的相關(guān)概念。
          我們知道 LDAP 的全稱為( Lightweight Directory Access Protocol ),即輕量級(jí)目錄訪問(wèn)協(xié)議。

          Ldap 是怎樣的一個(gè)結(jié)構(gòu)呢 ?用官方的話說(shuō):“ In LDAP, directory entries are arranged in a hierarchical tree-like structure. Traditionally, this structure reflected the geographic and/or organizational boundaries. Entries representing countries appear at the top of the tree. Below them are entries representing states and national organizations. Below them might be entries representing organizational units, people, printers, documents, or just about anything else you can think of.. ”他是一個(gè)樹(shù)狀的結(jié)構(gòu)。每一個(gè)節(jié)點(diǎn)被稱為一個(gè) Entry 。這些 Entry 有著有趣的含義。

          下面是他的 2 個(gè)實(shí)例。一個(gè)反映了 geographic ,一個(gè)反映了 organizational

          ?????????????????????????????????????????????????????????? 傳統(tǒng)命名

          ?????????????????????????????????????????????????????????? 網(wǎng)絡(luò)命名

          我們來(lái)看看個(gè)個(gè)節(jié)點(diǎn)的定義方式。

          每個(gè) Entry 都有一個(gè)自己得一個(gè)標(biāo)示 ,我們把他叫 DN(Distinguished Name) ,這個(gè) dn 包含了一個(gè) RDN Relative Distinguished Name )。在上面的第二個(gè)圖例 中,Barbara Jensen的RDN是 uid=babs,他的dn是 uid=babs,ou=People,dc=example, dc=com。

          每個(gè)節(jié)點(diǎn)都需要一個(gè)類別 這個(gè)類別信息用objectClass來(lái)表示。ObjectClass就是該節(jié)點(diǎn)的schema,他定義了該節(jié)點(diǎn)該有和不該有的屬性。默認(rèn)的objectClass都在schema/core.schema中有定義。如果在你的配置過(guò)程中出現(xiàn)了關(guān)于找不到objectClass的問(wèn)題,您不妨參看一下這里面有沒(méi)有你用到的objectClass . 在schema文件夾下還有其他一些schema文件,你也可以定義自己的schema.想要加載其他的schema,你可以在slapd.conf文件中用include加入.如:include??./schema/core.schema. 為了方便識(shí)別,其實(shí)我們?cè)?span lang="EN-US">DN里面用的都是objectClass的簡(jiǎn)寫(xiě)形式。如:ou代表organizationUnit,c代表country,st代表state,dc代表??等。

          2、? 來(lái)看看 slapd.conf 這個(gè)文件
          這個(gè)文件的主要信息是如下幾行:

          database bdb

          suffix "dc=<MY-DOMAIN>,dc=<COM>"

          rootdn "cn=Manager,dc=<MY-DOMAIN>,dc=<COM>"

          rootpw secret

          directory /usr/local/var/openldap-data

          定義了數(shù)據(jù)庫(kù),最基本的后綴,管理員的 dn 和密碼,以及數(shù)據(jù)存放路徑。

          編輯好這個(gè)文件,我們就可以啟動(dòng)了。

          如果你把 ldap 安裝為 windows 服務(wù),你可以像我一樣啟動(dòng):

          net start OpenLDAP-slapd

          ?

          3、? 我們主要操作的就是這個(gè) LDIF 文件
          我們需要在這個(gè)文件里面加入所需要的 dn.

          注意,因?yàn)槲覀冊(cè)?/span> slapd.conf 中定義了一個(gè) base dn 和一個(gè)管理員 dn ,所以我們需要首先把這 2 個(gè) dn 加進(jìn)來(lái)。

          dn: dc=<MY-DOMAIN>,dc=<COM>

          objectclass: dcObject

          objectclass: organization

          o: <MY ORGANIZATION>

          dc: <MY-DOMAIN>

          ?

          dn: cn=Manager,dc=<MY-DOMAIN>,dc=<COM>

          objectclass: organizationalRole

          cn: Manager

          保存為 ldif 后綴的文件。然后我們用命令把這些信息加到 ldap 中去:

          ldapadd -x -D "cn=Manager,dc=<MY-DOMAIN>,dc=<COM>" -W -f example.ldif

          讓我們來(lái)查看以下我們的設(shè)置是否出現(xiàn)問(wèn)題:

          ldapsearch -x -b 'dc=example,dc=com' '(objectclass=*)'

          上面的是 linux/unix 下的命令, windows 下我們需要做點(diǎn)更改:

          ldapsearch -x -b dc=example,dc=com (objectclass=*)

          對(duì),就是去掉引號(hào)。

          為了察看方便,筆者建議使用 GUI 工具來(lái)查看,比如筆者使用的 Softerra LDAP Browser 2.6

          ?

          三、 java 集成
          我們的 ldap Server 已經(jīng)搭建起來(lái)了,我們需要在我們的 java 程序中訪問(wèn)這個(gè)服務(wù)。

          Openldap.org 上有沒(méi)有講?有講?下面介紹的 JLDAP 就是干這個(gè)的。

          我們需要看一下“ Java LDAP Overview ”里面的內(nèi)容。內(nèi)容不是很多,但很實(shí)用。

          要在 java 中訪問(wèn) ldap ,我們需要一套 api, 你可以在下面的網(wǎng)站上獲得:

          http://developer.novell.com/wiki/index.php/LDAP_Classes_for_Java

          在下在的文件里面有許多的例子,在 novell 的網(wǎng)站上也有很多的例子。我就不講了。 Try yourself

          posted on 2006-08-26 08:37 binge 閱讀(9173) 評(píng)論(7)  編輯  收藏 所屬分類: OPEN SOURCE

          評(píng)論

          # re: OpenLDAP快速上手  回復(fù)  更多評(píng)論   

          不深入
          2006-08-27 11:05 | 笑嘻嘻系

          # re: OpenLDAP快速上手  回復(fù)  更多評(píng)論   

          剛學(xué)啊,感性認(rèn)識(shí)先.望樓上提點(diǎn)一下需要深入的綱要
          2006-08-28 09:35 | binge

          # re: OpenLDAP快速上手  回復(fù)  更多評(píng)論   

          Softerra LDAP Browser 2.6 哪有啊?
          2006-11-19 16:40 | 李[匿名]

          # re: OpenLDAP快速上手  回復(fù)  更多評(píng)論   

          很難找到windows版本的啊,找到的也是版本太低了!不知道樓主的是那個(gè)版本的,我的是2.2.29的,但我想找一個(gè)版本高一點(diǎn)的。我的QQ:76988599
          2007-05-29 17:49 | yeyu710

          # re: OpenLDAP快速上手  回復(fù)  更多評(píng)論   

          感覺(jué)不錯(cuò),剛開(kāi)始琢磨這個(gè)東西。。哎,學(xué)習(xí)中。。。。。
          2007-07-18 17:45 | OK

          # re: OpenLDAP快速上手  回復(fù)  更多評(píng)論   

          其實(shí)講解LDIF文件不如講解schema文件來(lái)的直接。
          感覺(jué)如果能從一個(gè)schema例子來(lái)講解會(huì)比直接講LDIF好。
          2008-04-03 09:58 | chenpengyi

          # re: OpenLDAP快速上手  回復(fù)  更多評(píng)論   

          學(xué)習(xí)·····,有個(gè)感性認(rèn)識(shí)
          2008-12-03 18:03 | sss
          主站蜘蛛池模板: 象州县| 铜陵市| 富蕴县| 平果县| 上饶县| 苏尼特右旗| 康保县| 安康市| 仙游县| 潜江市| 广西| 托克托县| 邓州市| 泰和县| 肥东县| 合肥市| 鄂尔多斯市| 台州市| 郯城县| 余江县| 绥芬河市| 定远县| 新竹县| 隆安县| 乐平市| 宿迁市| 尼玛县| 滨海县| 华阴市| 抚州市| 板桥市| 盱眙县| 建始县| 化隆| 吴江市| 漳州市| 孝感市| 宜良县| 墨竹工卡县| 伊川县| 团风县|