網頁

2013年7月14日 星期日

LDAP PHP

PHPLDAP - Manual


ldap Attribute 利用Directory Explorer查找 注意要改全小寫



ldap_bind ldap_bind($ldapconn, "{$ldapuser}@{$ldapserver}", $ldappass);

ldap_search

 

header("Content-Type:text/html; charset=utf-8");



 // connect 
 $ldapconn = ldap_connect($ldapserver) or die("Could not connect to LDAP server.");

 if($ldapconn) {
 
  //If you have problems with national characters or UTF8 encoding/decoding, set protocol to version 3:
    ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
  // binding to ldap server
  //$ldapbind = ldap_bind($ldapconn, $ldapuser, $ldappass) or die ("Error trying to bind: ".ldap_error($ldapconn));
 
     // binding to ldap server
  $ldapbind = ldap_bind($ldapconn, "{$ldapuser}@{$ldapserver}", $ldappass);

  // verify binding
  if ($ldapbind) {
   //echo "LDAP bind successful...

";
   
   //$result = ldap_search($ldapconn,$ldaptree, "( cn=".$myusername.")") or die ("Error in search query: ".ldap_error($ldapconn));
   
   
   $filter= "( userPrincipalName=".$myusername."@".$ldapserver.")";
   $result = ldap_search($ldapconn,$ldaptree, $filter) or die ("Error in search query: ".ldap_error($ldapconn));
   
   
   $data = ldap_get_entries($ldapconn, $result);

   for ($i=0; $i<$data["count"]; $i++) {
    echo "dn is: ". $data[$i]["dn"] ."
";
    //syntax must be DirectoryString
    
    // echo "givenname: ". $data[$i]["givenname"][0] ."
";
    // echo "User: ". $data[$i]["cn"][0] ."
";
        //echo "title: ". $data[$i]["title"][0] ."
";
    // echo "telephonenumber: ". $data[$i]["telephonenumber"][0] ."
";
    // echo "mobile: ". $data[$i]["mobile"][0] ."
";
    $telephonenumber =  $data[$i]["telephonenumber"][0];
     
    // echo "memberof: ". $data[$i]["memberof"][0] ."
";
     $memberof_cn = explode(",", $data[$i]["memberof"][0]);
     $memberof_cn_value = explode("=", $memberof_cn[0]); //cn=value
     //echo  $memberof_cn_value[1] ."
"; //value
     
    $ldap_team_name = $memberof_cn_value[1];
    $db_team_id = dbquery_team_id($ldap_team_name);
    echo "db_team_id is: ". $db_team_id ."
";
    check_db_person_exit($ldapuser,$db_team_id,$telephonenumber);
    
    
   }
   // print number of entries found
   echo "Number of entries found: " . ldap_count_entries($ldapconn, $result);
  } else {
   echo "LDAP bind failed...";
  }

Beware of the case sensitivity in php and LDAP/AD connections!



新增使用者資訊

#設定 吳怡君 通訊錄
dn: cn=li,ou=user,dc=xiang,dc=com
cn: li
sn: N/A
objectclass: person
objectclass: inetOrgPerson
givenName: 吳怡君
mail: c293831287@l-penguin.idv.tw
telephoneNumber: 02-29587572
mobile: 0939689593
postalAddress: 台北縣中和市景平路1號
postalCode: 235
ou: 人力資源部
title: 辦事員

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。