PHP是一種廣泛使用的服務器腳本語言,而LDAP則是用于訪問目錄服務的應用程序協議。在PHP中,LDAP被廣泛用于與目錄服務器進行交互。通過使用LDAP,PHP可以訪問和管理以層次結構組織的分布式信息。本文將著重介紹PHP LDAP 5.7的一些特性和如何使用它來操作LDAP目錄。
一個簡單的例子,可以通過使用PHP LDAP創建和添加用戶到LDAP目錄服務器中。為了完成這個任務,首先需要建立和LDAP服務器的連接。這可以通過使用ldap_connect()函數來實現。
$ldapconn = ldap_connect("ldap.example.com") or die("Could not connect to LDAP server");
在建立連接后,需要使用ldap_bind()函數進行身份驗證。如果支持具有可寫權限的DN(Distinguish Name),則可以使用基于密碼的綁定。這可以通過以下方式實現:
$ldapbind = ldap_bind($ldapconn, "cn=admin,dc=example,dc=com", "adminpassword");
現在可以使用ldap_add()函數來添加一個新用戶到LDAP服務器。以下代碼可以添加一個用戶 "cn=newuser,ou=users,dc=example,dc=com" 到LDAP服務器:
$newuser = array( "cn" =>"newuser", "uid" =>"newuser", "sn" =>"User", "givenName" =>"New", "displayName" =>"New User", "userPassword" =>"{SHA}6DLZf13wiJyyp9RqgNWahmC5+pc=", "objectClass" =>array("top", "person", "organizationalPerson", "inetOrgPerson") ); $adduser = ldap_add($ldapconn, "cn=newuser,ou=users,dc=example,dc=com", $newuser);
在這個例子中,我們創建了一個新的用戶,指定了它的用戶ID,姓氏、名字、顯示名稱以及加密后的密碼。我們還指定了該用戶的對象類。使用ldap_add()函數,我們將新用戶添加到 "cn=newuser,ou=users,dc=example,dc=com" 的DN下。
另一個有用的功能是使用ldap_search()函數來搜索LDAP目錄樹中的信息。例如,如果要查找所有在 "ou=users,dc=example,dc=com" 下的用戶,可以使用以下代碼:
$usertree = "ou=users,dc=example,dc=com"; $filter = "(objectClass=inetOrgPerson)"; $attributes = array("cn", "givenName", "sn", "mail"); $result = ldap_search($ldapconn, $usertree, $filter, $attributes); $users = ldap_get_entries($ldapconn, $result);
在這個例子中,我們使用ldap_search()函數搜索"ou=users,dc=example,dc=com"下的所有inetOrgPerson對象。我們還指定了我們要檢索的屬性(cn、givenName、sn和mail)。使用ldap_get_entries()函數,我們將這些用戶存儲到一個數組中。
PHP LDAP 5.7提供了許多常用的LDAP操作函數,如添加、刪除、修改、搜索和認證用戶等。借助這些函數,PHP可以輕松地與LDAP目錄樹進行互動。此外,PHP LDAP 5.7還支持TLS安全連接以及開放式LDAP(OpenLDAP)的服務器腳本編寫。