ADOdb

Database Abstraction Layer for PHP

User Tools

Site Tools


v5:database:ldap

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
v5:database:ldap [2023/11/17 15:39] mnewnhamv5:database:ldap [2023/11/18 23:45] (current) mnewnham
Line 1: Line 1:
 ====== LDAP ====== ====== LDAP ======
 ~~NOTOC~~ ~~NOTOC~~
 +<WRAP important>
 +Use of ADODB_FETCH_NUM is strongly discouraged because AD records returned in queries may not all contain the same number of fields
 +</WRAP>
 +
 <WRAP right box round 300px> <WRAP right box round 300px>
 == Specification == == Specification ==
 ^Driver Name|ldap| ^Driver Name|ldap|
 ^Data Provider|ldap| ^Data Provider|ldap|
-^Status|Inactive((This driver is not actively supported or enhanced by ADOdb project members, but you can provide fixes and enhancements if you have the expertise))|+^Status|Active((This driver is actively supported or enhanced by ADOdb project members))|
 ^Windows|Yes| ^Windows|Yes|
 ^Unix|Perhaps((We have never tried it except against Microsoft LDAP servers from Windows))| ^Unix|Perhaps((We have never tried it except against Microsoft LDAP servers from Windows))|
Line 13: Line 17:
 </WRAP> </WRAP>
 ===== Description ===== ===== Description =====
-The ''ldap'' driver provides a small subset of ADOdb commands allowing **read-only** access to an LDAP database. +From ADOdb Versions 5.22.8 and 5.23.0, the LDAP driver can be used in the same way as all the other drivers. Simply replace the SQL statement with a valid AD Query String
-===== Available Methods ===== +
-The following methods are available for use with the LDAP driver:+
  
-  * [[v5:reference:connection:getassoc|execute()]] 
-  * [[v5:reference:connection:getassoc|getAssoc()]] 
-  * [[v5:reference:connection:selectdb|selectDb()]] 
-  * [[v5:reference:connection:serverinfo|serverInfo()]] 
-  * [[v5:reference:connection:getrowassoc|getRowAssoc()]] 
-  * [[v5:reference:connection:setConnectionParameter|setConnectionParameter()]] 
-   
-Calls to other methods when used with this driver may produce unexpected results or program failure.  
 ===== Usage ===== ===== Usage =====
 +
 +You must use standard [[https://ldap.com/ldap-filters/|LDAP filter terms]] rather than SQL statements when executing a query. Any value provided in the //$bindvars// parameter is ignored,
 +------------------------------------------------------------
 <code php> <code php>
-$db = newAdoConnection('ldap'); +DEFINE('ADODB_ASSOC_CASE',ADODB_ASSOC_CASE_UPPER); 
-$baseDN   = 'dc=test,dc=loc'; + 
-$adServer = '192.168.1.16'; +$db = ADOnewConnection('ldap'); 
-$user     = 'adodb@test.loc';+ 
 +$db->setFetchMode(ADODB_FETCH_ASSOC); 
 + 
 +$baseDN   = 'dc=example,dc=com'; 
 +$adServer = 'example.com'; 
 +$user     = 'adodb@example.com';
 $password = 'adodb!'; $password = 'adodb!';
  
 $db->connect($adServer,$user,$password,$baseDN); $db->connect($adServer,$user,$password,$baseDN);
  
-$result = $db->execute('(samaccountname=adodb)');+/* 
 +* Find the first 2 records where the given name is adodb 
 +*/ 
 +$result = $db->selectLimit('(givenname=adodb)',2);
  
 +while ($r = $result->fetchRow())
 +{
 +    print_r($r);
 +    
 +}
 </code> </code>
 +
 +Returns the following data. Note that some elements may contain **array** or **binary** data. In this example, the 1st record contains 29 columns, and the second 30.
 +
 +<code>
 +Array
 +(
 +    [CN] => ADODb Tester
 +    [SN] => Tester
 +    [GIVENNAME] => ADODb
 +    [DISTINGUISHEDNAME] => CN=ADODb Tester,CN=Users,DC=test,DC=loc
 +    [INSTANCETYPE] => 4
 +    [WHENCREATED] => 20231116231826.0Z
 +    [WHENCHANGED] => 20231116231828.0Z
 +    [DISPLAYNAME] => ADODb Tester
 +    [USNCREATED] => 12794
 +    [USNCHANGED] => 12801
 +    [NAME] => ADODb Tester
 +    [OBJECTGUID] =>
 +    [USERACCOUNTCONTROL] => 66048
 +    [BADPWDCOUNT] => 0
 +    [CODEPAGE] => 0
 +    [COUNTRYCODE] => 0
 +    [BADPASSWORDTIME] => 0
 +    [LASTLOGOFF] => 0
 +    [LASTLOGON] => 0
 +    [PWDLASTSET] => 133446503074682533
 +    [PRIMARYGROUPID] => 513
 +    [OBJECTSID] =>
 +    [ACCOUNTEXPIRES] => 9223372036854775807
 +    [LOGONCOUNT] => 0
 +    [SAMACCOUNTNAME] => adodb
 +    [SAMACCOUNTTYPE] => 805306368
 +    [USERPRINCIPALNAME] => adodb@test.loc
 +    [OBJECTCATEGORY] => CN=Person,CN=Schema,CN=Configuration,DC=test,DC=loc
 +    [DSCOREPROPAGATIONDATA] => Array
 +        (
 +            [0] => 20231116231827.0Z
 +            [1] => 16010101000000.0Z
 +        )
 +
 +    [OBJECTCLASS] => Array
 +        (
 +            [0] => top
 +            [1] => person
 +            [2] => organizationalPerson
 +            [3] => user
 +        )
 +
 +)
 +Array
 +(
 +    [CN] => ADOdb N. Tester
 +    [SN] => Tester
 +    [GIVENNAME] => ADOdb
 +    [INITIALS] => N
 +    [DISTINGUISHEDNAME] => CN=ADOdb N. Tester,CN=Users,DC=test,DC=loc
 +    [INSTANCETYPE] => 4
 +    [WHENCREATED] => 20231118172808.0Z
 +    [WHENCHANGED] => 20231118172809.0Z
 +    [DISPLAYNAME] => ADOdb N. Tester
 +    [USNCREATED] => 16413
 +    [USNCHANGED] => 16420
 +    [NAME] => ADOdb N. Tester
 +    [OBJECTGUID] => 
 +    [USERACCOUNTCONTROL] => 66048
 +    [BADPWDCOUNT] => 0
 +    [CODEPAGE] => 0
 +    [COUNTRYCODE] => 0
 +    [BADPASSWORDTIME] => 0
 +    [LASTLOGOFF] => 0
 +    [LASTLOGON] => 0
 +    [PWDLASTSET] => 133448020890659722
 +    [PRIMARYGROUPID] => 513
 +    [OBJECTSID] => 
 +    [ACCOUNTEXPIRES] => 9223372036854775807
 +    [LOGONCOUNT] => 0
 +    [SAMACCOUNTNAME] => adodb2
 +    [SAMACCOUNTTYPE] => 805306368
 +    [USERPRINCIPALNAME] => adodb2@test.loc
 +    [OBJECTCATEGORY] => CN=Person,CN=Schema,CN=Configuration,DC=test,DC=loc
 +    [DSCOREPROPAGATIONDATA] => Array
 +        (
 +            [0] => 20231118172809.0Z
 +            [1] => 16010101000000.0Z
 +        )
 +
 +    [OBJECTCLASS] => Array
 +        (
 +            [0] => top
 +            [1] => person
 +            [2] => organizationalPerson
 +            [3] => user
 +        )
 +
 +)
 +</code>
 +==== URI Connections ====
 +The **//Server//** definition can be set in the form ''ldap://server-name''. You must use this if you want to:
 +  - Use an alternate connection port ''ldap:⁄⁄server-name:3389''
 +  - Use ldap over SSL - ''ldaps:⁄⁄server-name''
 +
 +
 +
  
 ===== Connection Parameters ===== ===== Connection Parameters =====
Line 59: Line 172:
  
  
-From ADOdb 5.22.7, default values set are as follows+From ADOdb 5.22.8 and 5.23.0, default values set are as follows
  
 ^Parameter^Value^ ^Parameter^Value^
Line 102: Line 215:
 </code> </code>
  
-{{tag>[dormant tier2]}}+{{tag>active tier2 ]}}
  
v5/database/ldap.1700231949.txt.gz · Last modified: 2023/11/17 15:39 by mnewnham