code:
<?php
function getLdapInfo($user,$password,$domain) {
// Config:
$ldap_server = "ldaps://<YOUR_LDAP_SERVER>";
$defaultDN = "dc=<DOMAIN_NAME>,dc=<DOMAIN_TLD>";
$filter = '(&(objectClass=user)(sAMAccountName='.$user.'))';
// Script
$ad = @ldap_connect($ldap_server);
ldap_set_option($ad, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ad, LDAP_OPT_REFERRALS, 0);
$bd = @ldap_bind($ad,$user.'@'.$domain,$password);
if (ldap_errno($ad)) {
switch(ldap_errno($ad)) {
case 81:
# Can't connect to LDAP Server
return(array(
'errorno' => -1,
'errorstr' => 'Can\'t connect to Domain Server',
'errortxt' => 'Error #'.ldap_errno($ad).': '.ldap_err2str(ldap_errno($ad))
));
case 49:
# Can't authenticate
return(array(
'errorno' => -2,
'errorstr' => 'Invalid Login/Password',
'errortxt' => 'Error #'.ldap_errno($ad).': '.ldap_err2str(ldap_errno($ad))
));
default:
# Unknown Error
return(array(
'errorno' => -99,
'errorstr' => 'Unknown Error, Please contact support',
'errortxt' => 'Error #'.ldap_errno($ad).': '.ldap_err2str(ldap_errno($ad))
));
}
}
$result = @ldap_search($ad, $defaultDN, $filter, array('memberOf','displayName','mail','sAMAccountName'));
$entries = @ldap_get_entries($ad, $result);
if (ldap_errno($ad)) {
return(array(
'errorno' => -3,
'errorstr' => 'Configuration Error, Please contact support',
'errortxt' => 'Error #'.ldap_errno($ad).': '.ldap_err2str(ldap_errno($ad))
));
}
$_RETURN[id] = $entries[0]["samaccountname"][0];
$_RETURN[name] = $entries[0]["displayname"][0];
$_RETURN[email] = $entries[0]["mail"][0];
$_RETURN[groups] = array();
for ($i=0; $i < $entries[0]["memberof"]["count"]; $i++) {
array_push($_RETURN[groups],substr($entries[0]["memberof"][$i],3,strpos($entries[0]["memberof"][$i],',')-3));
}
return($_RETURN);
ldap_unbind($ad);
}
// Test Code
print "<pre>";
print_r(getLdapInfo('<USERNAME>','<PASSWORD>','<DOMAIN_CONTROLLER'));
?>
script end
result of the scriptArray ( [id] => adambotbyl [name] => Adam Botbyl [email] => adam@locateadam.com [groups] => Array ( [0] => Web Blog [1] => Admin ) )
0 comments:
Post a Comment