一纺蛆、什么是LDAP?
(一)在介紹什么是LDAP之前温峭,我們先來復(fù)習(xí)一個東西:“什么是目錄服務(wù)识颊?”
1. 目錄服務(wù)是一個特殊的數(shù)據(jù)庫,用來保存描述性的清笨、基于屬性的詳細信息,支持過濾功能苛萎。
2. 是動態(tài)的检号,靈活的,易擴展的翘盖。
如:人員組織管理凹蜂,電話簿,地址簿汰瘫。
(二)了解完目錄服務(wù)后擂煞,我們再來看看LDAP的介紹:
LDAP(Light Directory Access Portocol),它是基于X.500標準的輕量級目錄訪問協(xié)議蝗拿。
目錄是一個為查詢蛹磺、瀏覽和搜索而優(yōu)化的數(shù)據(jù)庫同仆,它成樹狀結(jié)構(gòu)組織數(shù)據(jù)裙品,類似文件目錄一樣。
目錄數(shù)據(jù)庫和關(guān)系數(shù)據(jù)庫不同岁忘,它有優(yōu)異的讀性能区匠,但寫性能差帅腌,并且沒有事務(wù)處理速客、回滾等復(fù)雜功能五鲫,不適于存儲修改頻繁的數(shù)據(jù)。所以目錄天生是用來查詢的浪耘,就好象它的名字一樣七冲。
LDAP目錄服務(wù)是由目錄數(shù)據(jù)庫和一套訪問協(xié)議組成的系統(tǒng)规婆。
(三)為什么要使用
LDAP是開放的Internet標準,支持跨平臺的Internet協(xié)議苗踪,在業(yè)界中得到廣泛認可的削锰,并且市場上或者開源社區(qū)上的大多產(chǎn)品都加入了對LDAP的支持,因此對于這類系統(tǒng)颅夺,不需單獨定制蛹稍,只需要通過LDAP做簡單的配置就可以與服務(wù)器做認證交互∞挚“簡單粗暴”赵抢,可以大大降低重復(fù)開發(fā)和對接的成本声功。
我們拿開源系統(tǒng)(YAPI)做案例,只需做一下簡單的幾步配置就可以達到LDAP的單點登錄認證了:
{ "ldapLogin": { "enable": true, "server": "ldap://l-ldapt1.ops.dev.cn0.qunar.com", "baseDn": "CN=Admin,CN=Users,DC=test,DC=com", "bindPassword": "password123", "searchDn": "OU=UserContainer,DC=test,DC=com", "searchStandard": "mail" } }
二其爵、LDAP的主要產(chǎn)品
細心的朋友應(yīng)該會主要到,LDAP的中文全稱是:輕量級目錄訪問協(xié)議摩渺,說到底LDAP僅僅是一個訪問協(xié)議,那么我們的數(shù)據(jù)究竟存儲在哪里呢乐埠?
來丈咐,我們一起看下下面的表格:
三龙宏、LDAP的基本模型
每一個系統(tǒng)、協(xié)議都會有屬于自己的模型辆影,LDAP也不例外黍特,在了解LDAP的基本模型之前我們需要先了解幾個LDAP的目錄樹概念:
(一)目錄樹概念
目錄樹:在一個目錄服務(wù)系統(tǒng)中,整個目錄信息集可以表示為一個目錄信息樹灭衷,樹中的每個節(jié)點是一個條目。
條目:每個條目就是一條記錄迫像,每個條目有自己的唯一可區(qū)別的名稱(DN)瞳遍。
對象類:與某個實體類型對應(yīng)的一組屬性,對象類是可以繼承的由缆,這樣父類的必須屬性也會被繼承下來份蝴。
屬性:描述條目的某個方面的信息氓轰,一個屬性由一個屬性類型和一個或多個屬性值組成署鸡,屬性有必須屬性和非必須屬性限嫌。
(二)DC怒医、UID奢讨、OU、CN扒袖、SN亩码、DN、RDN
(三)基本模型:
信息模型
命名模型
功能模型
安全模型
四、LDAP的使用
那我們是如何訪問LDAP的數(shù)據(jù)庫服務(wù)器呢泞遗?
統(tǒng)一身份認證主要是改變原有的認證策略刹孔,使需要認證的軟件都通過LDAP進行認證娜睛,在統(tǒng)一身份認證之后,用戶的所有信息都存儲在AD Server中方库。終端用戶在需要使用公司內(nèi)部服務(wù)的時候障斋,都需要通過AD服務(wù)器的認證。
那么程序中是如何訪問的呢邀层? 我們以PHP腳本作為例子:
$ldapconn = ldap_connect(“10.1.8.78") $ldapbind = ldap_bind($ldapconn, 'username', $ldappass); $searchRows= ldap_search($ldapconn, $basedn, "(cn=*)"); $searchResult = ldap_get_entries($ldapconn, $searchRows); ldap_close($ldapconn);
連接到LDAP服務(wù)器遂庄;
綁定到LDAP服務(wù)器;
在LDAP服務(wù)器上執(zhí)行所需的任何操作秸谢;
釋放LDAP服務(wù)器的連接;