Проблема с кодом PHP LDAP для проверки члена определенной группы - PullRequest
2 голосов
/ 15 сентября 2010

У меня проблема со следующим кодом, который должен проверить, находится ли $ user в группах AlumniDBusers или AlumniDBmanagers в AD

Массив entry [0] всегда возвращает пустое значение

Кто-нибудь может увидеть, что может быть не так?

Спасибо

// Active Directory server
define('LDAP_HOST','dc1.college.school.edu');

// Active Directory DN
define('LDAP_DN','OU=Alumni Relations,OU=Departments,DC=college,DC=school,DC=edu');

// Active Directory user group
define('LDAP_USER_GROUP','AlumniDBusers');

// Active Directory manager group
define('LDAP_MANAGER_GROUP','AlumniDBmanagers');

 $ldap = ldap_connect(LDAP_HOST);

 echo "LDAP CONNECTED<br />";

 if($bind = ldap_bind($ldap, $user, $password)) {
  echo "PASS BIND<br />";

  $filter = "(samAccountName=" . $user . ")";
  $attrs = array("memberOf");
  $result = ldap_search($ldap, LDAP_DN, $filter, $attrs);

  $entries = ldap_get_entries($ldap, $result);

  echo "ENTRY RESULTS: ";
  print_r($entries[0]['memberOf']);
  echo "<br />";

  // see if member is in user or manager group
  if (in_array(LDAP_USER_GROUP,$entries[0]['memberOf']) || in_array(LDAP_MANAGER_GROUP,$entries[0]['memberOf']))
  { 
   echo "IN GROUP";
   ldap_unbind($ldap);
  } else {
   echo "NOT IN GROUP";
   ldap_unbind($ldap);
  }

 } else {
  echo "FAIL BIND";
  ldap_unbind($ldap);
 } 

Ответы [ 2 ]

1 голос
/ 16 сентября 2010

Получил работу, мой DN был не прав Код правильный

0 голосов
/ 16 сентября 2010

текст ссылки Руководство по PHP

"При добавлении / редактировании атрибутов для пользователя имейте в виду, что атрибут 'memberof' является особым случаем. Атрибут memberOf недоступенатрибут пользовательской схемы. "

...