php怎麼訪問ldap,用PHP如何操作LDAP

2021-10-25 21:42:51 字數 1241 閱讀 2928

1 ldap是什麼

ldap是乙個用來發布目錄資訊到許多不同資源的協議。通常它都作為乙個集中的位址本使用,不過根據組織者的需要,它可以做得更加強大。

ldap最基本的形式是乙個連線資料庫的標準方式。該資料庫為讀查詢作了優化。因此它可以很快地得到查詢結果,不過在其它方面,例如更新,就慢得多。要非凡注重的是,ldap通常作為乙個hierarchal資料庫使用,而不是乙個關聯式資料庫。因此,它的結構用樹來表示比用**好。正因為這樣,就不能用sql語句了。

簡單說來,ldap是乙個得到關於人或者資源的集中、靜態資料的快速方式。

ldap是輕量目錄訪問協議(lightweight directory access protocol)的縮寫,其實是一話號碼簿,類似於我們所使用諸如nis(network information service)、dns (domain name service)等網路目錄,也類似於你在花園中所看到的樹木。

ldap是一種非凡的資料庫。但是ldap和一般的資料庫不同,明白這一點是很重要的。 ldap對查詢進行了優化,與寫效能相比ldap的讀效能要優秀很多。

1.1 ldap的儲存規則

區分名(dn,distinguished name)

和自然界中的樹不同,檔案系統/ldap/**號碼簿目錄的每一片枝葉都至少有乙個獨一無二的屬性,這一屬性可以幫助我們來區別這些枝葉。

在檔案系統中, 這些獨一無二的屬性就是帶有完整路徑的檔名。比如/etc/passwd,該檔名在該路徑下是獨一無二的。當然我們可以有/usr/passwd, /opt/passwd,但是根據它們的完整路徑,它們仍然是唯一的。

在ldap中,乙個條目的區分名稱叫做「dn」或者叫做區分名。在乙個目錄中這個名稱總是唯一的。比如,我的dn是"uid=aghaffar, ou=people, o=developer.ch"。不可能有相同的dn,但是我們可以有諸如"uid=aghaffar, ou=administrators, o=developer.ch"的dn。這同上面檔案系統中/etc/passwd 和 /usr/passwd的例子很類似。

我們有獨一無二的屬性,在"ou=administrators, o=developer.ch" 中uid和在"ou=people, o=developer.ch"中的uid。這並不矛盾。

cn=common name 為使用者名稱或伺服器名,最長可以到80個字元,可以為中文;

ou=organization unit為組織單元,最多可以有四級,每級最長32個字元,可以為中文;

o=organization 為組織名,可以3

用Php如何操作LDAP

1 ldap是什麼 ldap是乙個用來發布目錄資訊到許多不同資源的協議。通常它都作為乙個集中的位址本使用,不過根據組織者的需要,它可以做得更加強大。ldap最基本的形式是乙個連線資料庫的標準方式。該資料庫為讀查詢作了優化。因此它可以很快地得到查詢結果,不過在其它方面,例如更新,就慢得多。要特別注意的...

PHP解決LDAP中objectGUID亂碼的問題

php 中正確處理 objectguid 的方式 function guidtostr binary guid 函式unpack string format string data int offset 0 array 作用 從二進位制字串中解壓資料。第乙個引數 format,指定解包時使用的格式。...

用PHP訪問資料庫

1 1造鏈結。物件導向 方式物件方式 3 把物件定個名字 db 4 mysqli 資料擴充套件類。在mysqli裡做物件 5 host 代表伺服器位址也叫做本機 本機伺服器localhost 6 username 使用者名稱 7 passwd 資料庫密碼 8 dbname 資料庫名稱,要操作的資料庫...