LDAP 概念与架设.docx

上传人:b****7 文档编号:9266064 上传时间:2023-02-03 格式:DOCX 页数:25 大小:30.65KB
下载 相关 举报
LDAP 概念与架设.docx_第1页
第1页 / 共25页
LDAP 概念与架设.docx_第2页
第2页 / 共25页
LDAP 概念与架设.docx_第3页
第3页 / 共25页
LDAP 概念与架设.docx_第4页
第4页 / 共25页
LDAP 概念与架设.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

LDAP 概念与架设.docx

《LDAP 概念与架设.docx》由会员分享,可在线阅读,更多相关《LDAP 概念与架设.docx(25页珍藏版)》请在冰豆网上搜索。

LDAP 概念与架设.docx

LDAP概念与架设

LDAP 概念与架设

現今網路常用的服務,以HTTP、Mail和FileSystem(Samba)為最常用的服務,然而在這些常用的服務裡,會有使用者帳號的問題,每當要使用Mail時要輸入Mail的帳號密碼,存取FileSystem要有FileSystem帳號密碼,再更多的服務就要記更多的帳號密碼,小弟曾看過某機關,一位承辦人居要要背五組以上的的帳號密碼,而每兩個月又要修改一次,想想看這是多麼恐怖的一件事。

LDAP是一種目綠服務,可使用LDAP記錄各種的人員資訊,就像是通訊錄一樣,又更進階一點,他也可以拿來做帳號整合,若是在AP上都有所支援,那麼要使用同一組帳號秘碼就不再是難以搞定的事了。

在小弟等當兵的這一段日子裡,打算使用LDAP來做Linuxlogin(newwindow)、Postfix(newwindow)、Samba、HTTP等帳號密碼整合。

所以,我將會寫一系列的LDAP整合文章,當然,太深入、難以說明或是太過於理論的地方我都不會講,因為這只是筆記,我會儘量說明清楚。

為了要讓閱讀本文章的讀者們可以更容易的找到相關書籍,我在文章裡也會提供參考圖書或網頁的資料。

無論如何,小弟只對RedhatLinux的部份較為熟悉,所以在以下文章裡所提到的LDAP,其實是指OpenLDAP套件,跟Microsoft的ActiveDirectory沒有關係,因為小弟對AD也不熟。

在這個章節裡,我將要介紹基本的LDAP觀念和如何使者用ldapcommand來新增、查尋資料。

而在實作的環境裡,我是使用CentOS4.0,也就是說若您的系統是使用CentOS4、RedhatEnterpriseLinux4、FedoraCore3或FedoraCore4的話應該都可以照著本文章實作,當然,CentOS4.0裡附的OpenLDAP版本是openldap-2.2。

安裝

要實作LDAP的話,當然一定要安裝LDAP套件了,包含了server及devel相關的套件,你可以查看系統有無LDAPServer套件。

root#rpm-qa|grepopenldap

openldap-2.2.13-2

openldap-devel-2.2.13-2

openldap-servers-2.2.13-2

openldap-clients-2.2.13-2

root#

若沒有的話,可使用CentOS4光碟所附的RPM來安裝就可以了。

root#rpm-ivhopenldap*

~中間略~

root#

規劃

其實LDAP也不用想得太難,把他想成資料庫的一種就對了,對於有資料庫設計經驗的人應該不成問題,但是若你之前都沒有碰過,那就把LDAP想成組織圖一樣就可以了,只是這個組織圖是在你腦海裡浮現,所以你最好要再準備一張紙,把你的架構畫出來才行。

就我這次提供的組織來看,大約是以下這樣:

l-penguin.idv.tw

/\

logincompany

/\/\

usergroupunitcustomer

/|\

misaccounthr

為了這次的實做,我把這個l-penguin.idv.tw分成主要兩個部份,login部份是用來做有關login的資料,所有有關login的機制都是放在這裡。

而company裡面,就只單純提供通訊錄的查尋而已。

而這個架構圖,在之後的LDAP系列文件裡,還會出現,我現在的實做,是以l-penguin.idv.tw->company->unit這個路線走,在最後的結果,可以查到在每個部份下的人員。

Note:

這個部份,我還沒有講到LDAP的表示法,主要是要讓各位讀者明白,在使用LDAP之前要先有一個架構,畫出來再依圖實做就會很好理解。

這個部份,可以參考LDAP系統管理第二章LDAPv3概論。

LDAP表示法

若要表示一筆人員記錄,可使用:

cn=username,ou=gourp,dc=your,dc=domain

若是以本例來說,在mis部門下有一位steven,那麼對於這位steven的表示法為:

cn=steven,ou=mis,ou=unit,ou=company,dc=l-penguin,dc=idv,dc=tw

這一長串,我們稱之為一個dn值,在LDAP的表示方法都是由小到大,也就是人名先表示、再表示部門、單位(這和老外的門牌表示法是一樣的意思)。

當然,經過這麼一說你就可以知道cn值在同一個ou下是不可以重複的,就是說在ou=mis下不可以有兩位steven,不然就照成資料重複。

當然,在同一公司裡叫steven的人可能到處跑,但是同一部門下同時叫steven的機率就就會降低了。

LDAP也可以使用中文,比方說小弟是在mis部門下的,若依名字設定dn的話,就會變成:

cn=廖子儀,ou=mis,ou=unit,ou=company,dc=l-penguin,dc=idv,dc=tw

相信,有了中文的支援下,大家對LDAP應該不會太排斥才對。

主要設定檔

在使用LDAP之前,一定要先設定好主要設定檔,如此才能讓你的LDAP正常使用。

OpenLDAP主要設定檔在/etc/openldap/slapd.conf,這個slapd.conf若要各位用手打出來可能會讓大家反彈,所幸裡面已經有最主要的設定了,這些設定可以符合大部份的需求,剩下來的只需要一些微調而已。

Note:

主要設定檔,在LDAP系統管理第三章OpenLDAP裡可得到詳細資訊。

 

DB_CONFIG檔案設定了index的快取數量,可調整效能的表現,在一開始建置時需要先行建立,這個檔案的預設範例可以從/etc/openldap下取得,並把它複製到/var/lib/ldap

root#cp/etc/openldap/DB_CONFIG.example/var/lib/ldap/DB_CONFIG

設定/etc/openldap/slapd.conf檔案

~以上略~

suffix"dc=l-penguin,dc=idv,dc=tw"

rootdn"cn=Manager,dc=l-penguin,dc=idv,dc=tw"

rootpwsecret

~以下略~

 

好了,三行,三行就符合本篇的主要設定,現在我就來解釋一下這三行的意思:

suffix"dc=l-penguin,dc=idv,dc=tw"

suffix就是用來定義你LDAP的根尾碼

rootdn"cn=Manager,dc=l-penguin,dc=idv,dc=tw"

Unix/Linuxroot裡有至高無尚的地位,可以打破任何規定,而在這裡,這個rootdn就是指LDAP的root,設定了之後就可以對整個LDAP系統資料做新增、刪除、修改等動作。

一般cn值會是Manager。

rootpwsecret

故名思意就是指定剛剛那個Manager的密碼,而在這個範例中,我們是使用secret這個明碼的文字,當然是為了解說方便,真正在管理時還是以加密過的文字較為安全。

設定完之後,你應該可以體會到這個slapd.conf有多重要,因為裡面包含了最大權限管理者的帳號密碼,所以除了相關帳號之外,應該不允許有其它人修改和閱讀。

設計機關檔/啟動ldap

當完成最主要的設定之後,系統內不會有任何資料,所以我們必需逐步建立,當然最重要的是機關設吧!

記錄資訊的格式我們一般取為*.ldif檔,一般第一次接觸會顯得很陌生,在這裡我將設計一個符合我規劃的LDIF檔案,並存在/etc/openldap/data/root-unit.ldif檔裡:

#rootnode

dn:

dc=l-penguin,dc=idv,dc=tw

dc:

l-penguin

objectClass:

dcObject

objectClass:

organizationalUnit

ou:

l-penguinDotidvDottw

好的,以上我們是一層一層的規劃下來,每一筆新的記錄和前一筆新記錄要使用一行空白行來隔開表示示別;而每一筆一開頭就要表示這筆資料的完整dn值,就像是絕對路徑一樣;在每一筆資料的參數裡,可以自行選用要使用那些objectClass。

當然,各位若不想用手慢慢key這些無聊的文字,可以由此下載root-unit.ldif檔案。

現在設定完了之後,我們要這些機關新增到LDAP裡,可以使用slapadd來新增:

root#slapadd-v-l/etc/openldap/data/root-unit.ldif

added:

"ou=login,dc=l-penguin,dc=idv,dc=tw"(00000005)

added:

"ou=user,ou=login,dc=l-penguin,dc=idv,dc=tw"(00000006)

added:

"ou=group,ou=login,dc=l-penguin,dc=idv,dc=tw"(00000007)

added:

"ou=company,dc=l-penguin,dc=idv,dc=tw"(00000008)

added:

"ou=unit,ou=company,dc=l-penguin,dc=idv,dc=tw"(00000009)

added:

"ou=hr,ou=unit,ou=company,dc=l-penguin,dc=idv,dc=tw"(0000000a)

added:

"ou=mis,ou=unit,ou=company,dc=l-penguin,dc=idv,dc=tw"(0000000b)

added:

"ou=account,ou=unit,ou=company,dc=l-penguin,dc=idv,dc=tw"(0000000c)

added:

"ou=customer,ou=company,dc=l-penguin,dc=idv,dc=tw"(0000000d)

root#

現在你可以很清楚的看到,你的機關名錄都被新增進去了!

若確定了之後,再來就啟動DLAP吧,若你和我一樣是由RPM安裝的,就很簡單了:

root#serviceldapstart

Checkingconfigurationfilesfor:

configfiletestingsucceeded

Startingslapd:

[OK]

root#

這樣就完成了!

Note:

在使用slap*工具之前,並不可以啟動LDAP。

再來,查看LDAP資料錄,下面的指令可以查看所有項目:

root#ldapsearch-x-b"dc=l-penguin,dc=idv,dc=tw"

#extendedLDIF

#

#LDAPv3

#basewithscopesub

#filter:

(objectclass=*)

#requesting:

ALL

#

#l-penguin.idv.tw

dn:

dc=l-penguin,dc=idv,dc=tw

dc:

l-penguin

ou:

l-penguinDotidvDottw

objectClass:

dcObject

objectClass:

organizationalUnit

#login,l-penguin.idv.tw

dn:

ou=login,dc=l-penguin,dc=idv,dc=tw

ou:

login

objectClass:

organizationalUnit

#user,login,l-penguin.idv.tw

dn:

ou=user,ou=login,dc=l-penguin,dc=idv,dc=tw

ou:

user

objectClass:

organizationalUnit

#group,login,l-penguin.idv.tw

dn:

ou=group,ou=login,dc=l-penguin,dc=idv,dc=tw

ou:

group

objectClass:

organizationalUnit

~其它略~

#searchresult

search:

2

result:

0Success

#numResponses:

11

#numEntries:

10

root#

你得到的結果會是一長串的項目,雖然有可能會看不懂,但你最少可以確定剛剛新增的資料都有成功的進去。

對於一開始接觸LDAP的各位讀者,一長串總比“什麼都沒有”來得好吧:

設計人員名錄

人員名錄和機關設計原理一樣,也是使用文字檔的ldif來做設計。

在這裡我準備新增幾個人員加入到各不同的單位裡,當然所示範的資料裡人員或身份證都是瞎掰杜撰的^^

我把設定檔存成/etc/openldap/data/users.ldif

#設定吳怡君通訊錄

dn:

cn=吳怡君,ou=hr,ou=unit,ou=company,dc=l-penguin,dc=idv,dc=tw

cn:

吳怡君

sn:

N/A

objectclass:

person

objectclass:

inetOrgPerson

givenName:

吳怡君

mail:

c293831287@l-penguin.idv.tw

telephoneNumber:

02-29587572

mobile:

0939689593

postalAddress:

台北縣中和市景平路1號

postalCode:

235

ou:

人力資源部

o:

l-penguinCorp.

labeledURI:

http:

//www.l-penguin.idv.tw/

title:

辦事員

礙於篇幅上面這只是一個人員的資料而已,這位隸屬於人事資源部的吳小姐(?

!

),我使用了inetOrgPerson和person這兩個objectclass。

其它的請望文生意吧,尤其是你不應該再問那個dn:

值是什麼意思。

有一點值得題的是,上面sn:

這個參數,其實是“姓”啦!

對於開始規劃使用LDAP的公司來說,要手動key這些名錄可能會死人,你可以請工讀生幫忙做這些鎖事,或是略施小計,使用ShellScript或Perl來產生吧,這樣就可以很快的建立這些名錄了。

好吧,我還是知道有人先抱著玩玩的心態來做實驗,但是又沒有現成的人名資料可以參考,那麼我就把本次的users.ldif給各位下載了。

Note:

關於inetOrgPerson和person這兩個objectClass可以查閱LDAP系統管理第四章4.2定義綱要。

新增人員名錄

建立好人員名錄之後,請得要注意下列幾項:

1.轉換到unix格式

2.中文字元和UTF-8

我相信,很多人一定是在Windows編好ldif檔之後再傳到主機上,但是在Windows編好的文件,有經驗的使用者會發現用vi一打開之後每一行的最後面會多一種^M的字元,這種字元在Linux可是不被認得的,若沒有消除就會造成新增錯誤。

你可以使用vi取代掉,或是使用更簡單的方法,讓dos2unix來幫你做:

root#dos2unix/etc/openldap/data/users.ldif

root#

中文字元的問題,因為在Windows編完之後,會使用Big5編碼,所以,我們要把他轉成UTF-8字元,為什麼?

因為LDAP就規定了ldif文件需要使用UTF-8格式,這樣子明白了吧!

要讓Big5變成UTF-8可以使用iconv這個程式來轉換:

root#iconv-fbig5-tUTF-8-ousers.ldif.utf8users.ldif

root#fileusers.ldif.utf8

users.ldif.utf8:

UTF-8Unicodetext

root#

好了,經過一翻煩雜的設定之後就可以開始來新增資料了,新增資料可使用ldapmodify來完成任務:

root#ldapmodify-D"cn=Manager,dc=l-penguin,dc=idv,dc=tw"-wsecret-x-a-f/etc/openldap/data/users.ldif.utf8

~中間略~

root#

好了,若中間沒有發生任何的問題,就表示新增成功,一樣我們使用ldapsearch來查看吧:

root#ldapsearch-x-b"ou=unit,ou=company,dc=l-penguin,dc=idv,dc=tw"

#extendedLDIF

#

#LDAPv3

#basewithscopesub

#filter:

(objectclass=*)

#requesting:

ALL

#

~略~

#E9BB83E680A1E99A86,hr,unit,company,l-penguin.idv.tw

dn:

:

Y2496buD5oCh6ZqGLG91PWhyLG91PXVuaXQsb3U9Y29tcGFueSxkYz1sLXBlbmd1aW4sZGM9a

WR2LGRjPXR3

cn:

:

6buD5oCh6ZqG

sn:

N/A

objectClass:

top

objectClass:

person

objectClass:

inetOrgPerson

givenName:

:

6buD5oCh6ZqG

mail:

d197700415@l-penguin.idv.tw

telephoneNumber:

02-29587572

mobile:

0939689593

postalAddress:

:

5Y+w5YyX57ij5Lit5ZKM5biC5pmv5bmz6LevMeiZnw==

postalCode:

235

ou:

:

5Lq65Yqb6LOH5rqQ

o:

l-penguinCorp.

labeledURI:

http:

//www.l-penguin.idv.tw/

title:

:

5Lq65LqL6LOH5rqQ6YOo5Li75Lu7

#E590B3E5AEB6E887BB,hr,unit,company,l-penguin.idv.tw

dn:

:

Y2495ZCz5a626Ie7LG91PWhyLG91PXVuaXQsb3U9Y29tcGFueSxkYz1sLXBlbmd1aW4sZGM9a

WR2LGRjPXR3

cn:

:

5ZCz5a626Ie7

sn:

N/A

objectClass:

top

objectClass:

person

objectClass:

inetOrgPerson

givenName:

:

5ZCz5a626Ie7

mail:

d295723341@l-penguin.idv.tw

telephoneNumber:

02-29587572

mobile:

0939689593

postalAddress:

:

5Y+w5YyX57ij5Lit5ZKM5biC5pmv5bmz6LevMeiZnw==

postalCode:

235

ou:

:

5Lq65Yqb6LOH5rqQ

o:

l-penguinCorp.

labeledURI:

http:

//www.l-penguin.idv.tw/

title:

:

6L6m5LqL5ZOh

~略~

#searchresult

search:

2

result:

0Success

#numResponses:

22

#numEntries:

21

root#

 

GUI工具

哎呀,人客呀,大家一看到這個小單元,可能會認為自己又誤上賊船了,千辛萬苦努力看完前面的廢話之後居然又出現一個GUI工具,但是,大家千萬不要認為小弟誘拐大家上賊船,明明有很方便的GUI工具還不放在第一個介紹~

可別誤會呀,若各位是從頭開始看的話,那麼已經可以開始使用文字模式來新增了,GUI只是一種輔助而已,若是不了解其原理,那麼就算有GUI工具還是無法使用順手。

在這裡我介紹的GUI工具是ldapbrowser,這工具可用來新增、移除、修改你的資料。

使用方法就由各位去發現吧!

名稱:

ldapbrowser

首頁:

http:

//www-unix.mcs.anl.gov/~gawor/ldap/

下載:

http:

//www-unix.mcs.anl.gov/~gawor/ldap/download.html

系统管理员须了解的LDAP 服务器

   用Python-LDAP执行LDAP的CRUD(创建、读取、更新和删除)操作:

   大多数系统管理员在职业生涯中都会遇到需要与LDAP服务器交互的情况。

本文讲解如何使用LDAP实现Apache身份验证,以及如何使用Python模块python-ldap在OpenLDAP数据库上执行CRUD(即创建、读取、更新和删除)操作。

   简介

   在本文中,作者将讲解如何在AmazonEC2虚拟机上安装OpenLDAP的实例,设置Apache/LDAP身份验证,然后使用Python执行CRUD(即创建、读取、更新和删除)操作。

一定要注意,可以在Fedora、Ubuntu、RedHat、AIX?

等操作系统上安装LDAP。

但是在本文中,我们决定采用AmazonEC2虚拟机。

您可以在任何Linux?

发行版或手边的任何环境中进行实践。

最后,我们将在本文中讨论许多代码和复杂的技术。

您应该首先下载示例代码,供阅读本文时参考。

   通过程序控制LDAP常常是系统管理员的工作,所以Python中存在一个用来操作LDAP的库就不奇怪了。

python-ldap模块已经存在了一段时间了,在参考资料一节中可以找到官方文档的链接。

   我们假设您熟悉一般的LDAP概念,比如目录模式、DistinguishedNames(DN)、CommonNames(CN)、过滤器和属性。

本文不是LDAP教程;我们不喜欢大谈理论,而是主要关注使用和管理LDAP数据库的实际示例。

   

 什么是LDAP以及它的用途是什么?

那么

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1