Hola Sirrohan,
Primero... tienes que tener un servidor de LDAP instalado en la red.
Segundo... la estructura de la busqueda de usuarios a traves de los comandos php ldap va a depender de como este ordenado el DNS.
Tercero... para poder hacer una busqueda tienes que hacer algo como esto:
Código PHP:
//Esta funcion le agrega el @dominio.com al usuario
//para cuando estas en una red windows
function checkLDAPUser($user){
$arrCheck = explode('@',$user);
return $arrCheck[0].'@dominio.com';
}
function LDAP($user,$pass){
$ldap = ldap_connect('ip.del.server.ldap');
if (ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3)) {
$login = @ldap_bind($ldap, $user, $pass);
if(!$login){
$_SESSION['isUser'] = false; //cargo en sesion que no existe
ldap_close($ldap);
$_SESSION['msg'] = 'LDAP ERROR'.ldap_error($ldap); //llevo el mensaje
return 0;
}else{
getAllInfoLDAP($user,$pass,$ldap);
ldap_close($ldap);
$_SESSION['isUser'] = true; //le digo que si es usuario
return 1;
}
}else{
$_SESSION['isUser'] = false;
ldap_close($ldap);
$_SESSION['msg'] = 'LDAP ERROR'.ldap_error($ldap);
return 0;
}
}
function getAllInfoLDAP($username,$password,$ds){
$dn[]="OU=DEFINIDOPORDNS,DC=DEFINIDOPORDNS,DC=DEFINIDOPORDNS";
$dn[]="OU=DEFINIDOPORDNS,DC=DEFINIDOPORDNS,DC=DEFINIDOPORDNS";
$id[] = $ds;
$id[] = $ds;
try{
$attributes = array("cn", "company","accountExpires","logonCount","physicalDeliveryOfficeName","mail");
$filter = "(&(objectCategory=Person)(userPrincipalName=$username))";
$result = ldap_search($id, $dn, $filter, $attributes);
$search = false;
foreach($result as $value){
if(ldap_count_entries($ds,$value)>0){
$search = $value;
break;
}
}
if($search){
$entries = ldap_get_entries($ds, $search);
if($entries["count"] > 0){
$_SESSION['USER_OFI'] = $entries[0]['physicaldeliveryofficename'][0];
$_SESSION['USER_MBO'] = $entries[0]['logoncount'][0];
$_SESSION['USER_CNX'] = $entries[0]['cn'][0];
return;
}else{
$_SESSION['USER_OFI'] = '';
$_SESSION['USER_MBO'] = '';
$_SESSION['USER_CNX'] = '';
return;
}
}else{
$_SESSION['USER_OFI'] = '';
$_SESSION['USER_MBO'] = '';
$_SESSION['USER_CNX'] = '';
return;
}
return;
}catch(Exception $e){
return;
}
}
Con esto voy a buscar datos por defecto que tiene el dominio para sacar el nombre y otras cosas mas del usuario (si se encuentran definidos)
Suerte!