憶風
光是知道是不夠的,必須要加以應用;光是希望是不夠的,非去做不可。
BlogJava
首頁
新隨筆
聯系
聚合
管理
隨筆-84 評論-56 文章-0 trackbacks-0
LDAP基礎
一、Directory
Services(目錄服務)能做什么?
我們知道,當局域網的規模變的越來越大時,為了方便主機管理,我們使用DHCP來實現IP地址、以太網地址、主機名和拓撲結構等的集中管理和統一分配。同樣,如果一個局域網內有許多的其它資源時,如打印機、共享文件夾等等,為了方便的定位及查找它們,一種集中定位管理的方式或許是較好的選擇,DNS和NIS都是用來實現類似管理的方法。
對于局域網內的一個用戶來講,工作等其它應用需要,我們必須憑帳號登錄主機、用帳號收發E-mail,甚至為了管理需要公司還需要維護一個電子號碼簿來存儲員工的姓名、地址、電話號碼等信息。隨著時間的增長,我們會為這些越來越多的帳號和密碼弄的頭暈腦脹。同時,如果一個員工離開,管理員就不得不翻遍所有的記錄帳號信息的文件把離職員工的信息刪除。這些將是一個繁瑣而效率低下的工作。那么,如果能將此些帳號信息等統一到一個文件中進行管理,無疑會大大提高員工及管理員的工作效率。目錄服務(LDAP是其實現的一種)正是基于這些應用實現的。
二、什么是LDAP?
LDAP是Lightweight
Directory
Access
Protocol的縮寫,顧名思義,它是指輕量級目錄訪問協議(這個主要是相對另一目錄訪問協議X.500而言的;LDAP略去了x.500中許多不太常用的功能,且以TCP/IP協議為基礎)。目錄服務和數據庫很類似,但又有著很大的不同之處。數據庫設計為方便讀寫,但目錄服務專門進行了讀優化的設計,因此不太適合于經常有寫操作的數據存儲。同時,LDAP只是一個協議,它沒有涉及到如何存儲這些信息,因此還需要一個后端數據庫組件來實現。這些后端可以是bdb(BerkeleyDB)、ldbm、shell和passwd等。
LDAP目錄以樹狀的層次結構來存儲數據(這很類同于DNS),最頂層即根部稱作“基準DN”,形如"dc=mydomain,dc=org"或者"o=mydomain.org",前一種方式更為靈活也是Windows
AD中使用的方式。在根目錄的下面有很多的文件和目錄,為了把這些大量的數據從邏輯上分開,LDAP像其它的目錄服務協議一樣使用OU(Organization
Unit),可以用來表示公司內部機構,如部門等,也可以用來表示設備、人員等。同時OU還可以有子OU,用來表示更為細致的分類。
LDAP中每一條記錄都有一個唯一的區別于其它記錄的名字DN(Distinguished
Name),其處在“葉子”位置的部分稱作RDN;如dn:cn=tom,ou=animals,dc=mydomain,dc=org中tom即為RDN;RDN在一個OU中必須是唯一的。
三、什么是LDIF?
LDIF(LDAP
Interchange
Format)是指存儲LDAP配置信息及目錄內容的標準文本文件格式,之所以使用文本文件來格式來存儲這些信息是為了方便讀取和修改,這也是其它大多數服務配置文件所采取的格式。LDIF文件常用來向目錄導入或更改記錄信息,這些信息需要按照LDAP中schema的格式進行組織,并會接受schema的檢查,如果不符合其要求的格式將會出現報錯信息。LDIF文件樣例如下:
#LDIF
file
example
dn:
dc=mydomain,dc=org
objectClass:
domain
dc:
mydomain
其中,以“#”號開頭的為注釋行;第二行起的行中,冒號左邊為屬性,右邊是屬性的值,這類同于編程中的變量及為其所賦的值,但屬性可以被重復賦值。
四、objectClass
LDAP中,一條記錄必須包含一個objectClass屬性,且其需要賦予至少一個值。每一個值將用作一條LDAP記錄進行數據存儲的模板;模板中包含了一條記錄中數個必須被賦值的屬性和一系列可選的屬性。如上述LDIF文件中的記錄所示,objectClass的值為domain。
objectClass有著嚴格的等級之分,最頂層的類是top和alias。例如,organizationalPerson這個objectClass隸屬于Person,而Person又是top的子類。
objectClass大致分為三類:結構型的(如:person和organizationUnit)、輔助型的(如:extensibeObject)和抽象型的(這類不能直接使用)。官方定義的objectClass,如下所示:
alias
applicationEntity
dSA
applicationProcess
bootableDevice
certificationAuthority
certificationAuthority-V2
country
cRLDistributionPoint
dcObject
device
dmd
domain
domainNameForm
extensibleObject
groupOfNames
groupOfUniqueNames
ieee802Device
ipHost
ipNetwork
ipProtocol
ipService
locality
dcLocalityNameForm
nisMap
nisNetgroup
nisObject
oncRpc
organization
dcOrganizationNameForm
organizationalRole
organizationalUnit
dcOrganizationalUnitName
Form
person
organizationalPerson
inetOrgPerson
uidOrganizationalPersonN
ameForm
residentialPerson
posixAccount
posixGroup
shadowAccount
strongAuthenticationUser
uidObject
userSecurityInformation
五、Attribute介紹
如上文所述,Attribute類同于編程語言中的變量,它可以被賦值,就像是可以存放一個單一類型信息的容器。官方聲明了許多常用的Attribute,如果其中沒有你所需要的,你可以自己定義,但要避免重名。objectClass是一種特殊的Attribute,它包含其它用到的Attribute以及它自身。常見的Attribute如:givenName、l、objectClass、dc、ou、cn、c、mail、telephoneNumber、sn、uid等。分別介紹如下:
c:國家;
cn:common
name,指一個對象的名字;如果指人,需要使用其全名;
dc:domain
Component,經常用來指一個域名的一部分,如:dc=mydomain,dc=org;
givenName:指一個人的名字,不能用來指姓或者middle
name;
l:指一個地名,如一個城市或者其它地理區域的名字;
mail:電子信箱地址
o:organizationName,指一個組織的名字;
objectClass:一個LDAP
server要想啟用必須能夠識別每一個對象的Attribute,objectClass
Attribute正是用來描述一個對象應該具有的Attribute及可選Attribute。因此,每個objectClass“模板”的Attribute中必然含有一條objectClass
Attribute,我不知道用“自包含”稱呼這個算不算合適。
ou:organizationalUnitName,指一個組織單元的名字。
sn:surname,指一個人的姓;
telephoneNumber:電話號碼,應該帶有所在的國家的代碼;
uid:userid,通常指一個人的登錄名,這個不同于Linux系統中用戶的uid;
如果可以這樣類比的話,我想,我們不妨把objectClass理解為關系數據庫的表,而attribute則類同為表中的字段。而下面即可介紹的schema或許可以類比作一個數據庫,但它的這個類比或許從邏輯上說更合適些。
六、什么是schema
好了,現在可以說說到底什么是schema了。LDAP中,schema用來指定一個目錄中所包含的objects的類型(objectClass)以及每一個objectClass中的各個必備(mandatory)和可選(optional)的屬性(attribute)。因此,[color=Orange]Schema是一個數據模型,它被用來決定數據怎樣被存儲,被跟蹤的數據的是什么類型,存儲在不同的Entry下的數據之間的關系。[/color]schema需要在主配置文件slapd.conf中指定,以用來決定本目錄中使用到的objectClass。管理員可以自己設計制定schema,一般包括屬性定義(AttributeDefinition)、類定義(ClassDefinition)以及語法定義(SyntaxDefinition)等部分。
LDAP
V3中在x.500標準的基礎上定義了一個包含了網絡中大多常見對象的schema,這些對象包括國家、所在地、組織、人員、小組以及設備等。同時,LDAP
V3中可以很方便的從目錄中提取出schema,它正是一條記錄中關于屬性的聲明部分。
七、對象標識符(Object
Identifiers)
對象標識符(OID)是被LDAP內部數據庫引用的數字標識。Attribute的名字是設計為方便人們讀取的,但為了方便計算機的處理,通常使用一組數字來標識這些對象,這類同于SNMP中的MIB2。例如,當計算機接收到dc這個Attribute時,它會將這個名字轉換為對應的OID:1.3.6.1.4.1.1466.115.121.1.26。
八、使用LDAP做身份驗正
驗正主要是用來確定一次會主中客戶端用戶所具有的權利,即用來確立用戶能否登錄以及登錄具有使用哪些資源以及如何使用資源的權限。驗正過程中的修改、查詢等操作由認證級別來控制。
objectClass中的person可以用來作linux系統中用戶登入的身份驗正,此時需要指定userPassword屬性的值,即指定用戶登入時使用的密碼。密碼可以使用的加密方式有MD5、CRYPT、SHA、SSHA等。在LDAP
V3中,驗正客戶端時可以使用的驗正機制有匿名驗正、簡單驗正、基于SSL/TLS的驗正和基于SASL的驗正等四種方式。
posted on 2008-09-21 02:40
憶風
閱讀(672)
評論(0)
編輯
收藏
所屬分類:
Java EE
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
RBAC模型(轉載)
HttpClient POST的中文編碼問題
tomcat 的jvm 內存溢出問題的解決
Struts 2 + Spring 2 + JPA + AJAX
JSTL經常用法
Web在線編輯器
中材技術數字信息管理系統界面
1億動態pv/天的超級數據庫緩存解決方案,開源了,還有測試代碼。
LDAP基礎
LDAP介紹(轉)
以無法為有法;以無限為有限
<
2008年9月
>
日
一
二
三
四
五
六
31
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
1
2
3
4
5
6
7
8
9
10
11
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(2)
給我留言
查看公開留言
查看私人留言
隨筆分類
Ajax(7)
DataBase(1)
Div & CSS(5)
English
Flex(1)
IDE(13)
Java EE(18)
Java SE(2)
JavaScript(4)
Rails&Ruby
WebService&SOA(2)
數據結構與算法(3)
武術(3)
生活感悟(13)
設計模式(2)
軟件工程(6)
隨筆檔案
2014年8月 (3)
2010年5月 (1)
2009年12月 (1)
2009年11月 (1)
2009年10月 (2)
2009年8月 (1)
2009年2月 (1)
2009年1月 (2)
2008年12月 (12)
2008年11月 (10)
2008年10月 (11)
2008年9月 (18)
2008年8月 (21)
相冊
MyPhoto
圖片庫
Blogroll
Anders Nor?s' Blog
anotherbug的博客
DBA notes
ESB zone
James Gosling's
Java夜未眠
SIMONE
wakaleo
冉翔的技術專欄
千鳥志
哥哥的Blog
成都心情
截拳道行者
林信良(良葛格)的專欄
爪哇人
臧圩人
邢紅瑞的blog
邱老師的Blog
鏡花水月
阿蜜果
參考手冊
51chm
CSS手冊
DHTML手冊
HTML手冊
JScript手冊
MSDN
SQL手冊
我的其他博客
憶風 blog
我的學習鏈接
Cwiki Apache Software Foundation
IBM開發者工作室
JavaWorld@TW
JAVA中文世界社區
Java堂
JAVA開源
Java開源大全
java最大交流社區
JBoss ESB Introduction (written in chinese)
jBPM3 Wiki
J道
LinuxSir
Maven權威指南
Sun 中國技術社區
w3school
XML實用大全
博客園 - 程序員的網上家園
正則表達式
滿江紅開源
良葛格的學習筆記
搜索
最新評論
1.?re: HttpClient POST的中文編碼問題[未登錄]
評論內容較長,點擊標題查看
--hp
2.?re: IntelliJ IDEA 目錄技巧[未登錄]
誤人子弟,哪個告訴你idea不能熱部署不能自動編譯的,發表文章分享值得鼓勵,但是也請自己先學會了再來發表,你這樣會初學者走很多彎路。
idea絕對比eclipse在用戶體驗方面強N多倍
--naruto
3.?re: HttpClient POST的中文編碼問題
對方是個玩
--阿斯蒂芬
4.?re: HttpClient POST的中文編碼問題
sd
--sd
5.?re: HttpClient POST的中文編碼問題
評論內容較長,點擊標題查看
--zuidaima
閱讀排行榜
1.?IntelliJ IDEA 目錄技巧(52831)
2.?HttpClient POST的中文編碼問題(44370)
3.?使用IntelliJ IDEA自動在線升級服務(8519)
4.?Vibrant Ink Theme for IntelliJ IDEA(7219)
5.?1億動態pv/天的超級數據庫緩存解決方案,開源了,還有測試代碼。(4088)
評論排行榜
1.?《截拳道之道-李小龍》(Tao of Jeet Kune Do - Bruce Lee)英文原著[pdf] (10)
2.?HttpClient POST的中文編碼問題(9)
3.?1億動態pv/天的超級數據庫緩存解決方案,開源了,還有測試代碼。(8)
4.?IntelliJ IDEA 目錄技巧(6)
5.?java面試題及答案(基礎題122道,代碼題19道) (3)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 憶風
主站蜘蛛池模板:
国产亚洲精品资在线
|
亚洲人成网站在线观看青青
|
亚洲成av人片天堂网
|
中国好声音第二季免费播放
|
亚洲人成电影网站国产精品
|
波霸在线精品视频免费观看
|
亚洲欧洲美洲无码精品VA
|
久久精品电影免费动漫
|
亚洲精品视频观看
|
国产卡一卡二卡三免费入口
|
亚洲中文字幕无码中文字
|
德国女人一级毛片免费
|
男男gvh肉在线观看免费
|
亚洲欧洲久久久精品
|
免费91最新地址永久入口
|
337p日本欧洲亚洲大胆艺术
|
免费国产成人高清在线观看网站
|
国产亚洲精aa在线看
|
免费看国产精品麻豆
|
免费无码又爽又刺激网站
|
亚洲精品熟女国产
|
国产高清免费在线
|
三年在线观看免费观看完整版中文
|
久久精品亚洲综合一品
|
国产h视频在线观看免费
|
日本亚洲中午字幕乱码
|
国产AV无码专区亚洲A∨毛片
|
美女视频黄的全免费视频
|
精品国产日韩亚洲一区在线
|
亚洲最大中文字幕无码网站
|
四虎永久在线精品免费观看地址
|
亚洲av日韩综合一区久热
|
国产L精品国产亚洲区久久
|
最近高清中文字幕免费
|
亚洲精品无码mⅴ在线观看
|
中文字幕中韩乱码亚洲大片
|
色婷婷六月亚洲综合香蕉
|
亚洲午夜久久久久久久久久
|
国产成人精品免费午夜app
|
国产成人亚洲精品电影
|
久久久久亚洲AV无码网站
|