LDAP(Lightweight Directory Access Protocol)是一種用于訪問和維護(hù)分布式目錄信息服務(wù)的協(xié)議。而MySQL是關(guān)系型數(shù)據(jù)庫管理系統(tǒng),常用于存儲(chǔ)Web應(yīng)用程序的數(shù)據(jù)。將LDAP與MySQL進(jìn)行對(duì)接可以實(shí)現(xiàn)用戶身份驗(yàn)證等功能。
LDAP可以將用戶信息存儲(chǔ)在樹形結(jié)構(gòu)的目錄中,而MySQL則是關(guān)系型數(shù)據(jù)庫,通常以表格的形式存儲(chǔ)數(shù)據(jù)。因此,需要將LDAP中的用戶信息轉(zhuǎn)換為MySQL表格中的格式。
CREATE TABLE ldap_users ( username VARCHAR(50), password VARCHAR(50) );
上述代碼創(chuàng)建了一個(gè)名為“l(fā)dap_users”的表格,其中包括用戶名和密碼兩個(gè)字段。在LDAP中,用戶信息通常存儲(chǔ)在“dn”字段中,因此需要使用LDAP搜索功能將用戶信息取出,并將信息存儲(chǔ)在MySQL中。
ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7); $ldap = ldap_connect('ldap.example.com'); ldap_bind($ldap, 'cn=Manager,dc=example,dc=com', 'password'); $result = ldap_search($ldap, 'dc=example,dc=com', '(objectClass=person)'); $entries = ldap_get_entries($ldap, $result); foreach ($entries as $entry) { if (!empty($entry['dn'])) { $username = $entry['dn']; $password = 'password'; // 此處為默認(rèn)值,也可以從LDAP中取出 $query = "INSERT INTO ldap_users (username, password) VALUES ('$username', '$password')"; mysqli_query($conn, $query); } } ldap_close($ldap);
上述代碼使用PHP連接LDAP服務(wù)器,并將用戶信息搜索出來存儲(chǔ)在$entries數(shù)組中,然后用循環(huán)將其中的每一個(gè)用戶信息存儲(chǔ)到MySQL表格中。這樣就完成了LDAP與MySQL的對(duì)接。