Форма входа ldap работает, но нужно добавить доступ к группе активных каталогов - PullRequest
1 голос
/ 16 марта 2010

Я создал форму, которая просит вас войти в систему, а затем проверяет пользователя / пароль на сервере ldap / active-directory, в случае успеха он создает сеанс, который будет проверяться на каждой странице.

Теперь я хочу проверить сеанс, который является именем пользователя, который вошел в систему, и выполнить поиск их с помощью ldap_search, чтобы я мог проверить, к какой группе они принадлежат, и передать эту группу через функцию для проверки что они могут просматривать эту страницу.

Каждая страница будет доступна определенной группе или группам пользователей, для которых эти группы определены в Active Directory.

Я не уверен, как мне это сделать, используя ldap_search, или, может быть, это всего лишь одна часть головоломки, которую я пытаюсь решить.

Любая помощь приветствуется - спасибо!

В приведенном ниже примере кода он проверяет, принадлежит ли пользователь группе активных каталогов ученика (я не знаю, работает ли этот код, но он должен дать вам представление о том, чего я хочу достичь).

$filter = "CN=StudentCN=Users,dc=domain,dc=control";

$result = ldap_search($ldapconn,$filter,$valid_session_username);

if($result == TRUE) {
 print $valid_session_username.' does have access to this page';
} else {
 print $valid_session_username.' does NOT have access to this page';
}

1 Ответ

3 голосов
/ 24 марта 2010

Цитируется из php.net ldap_search () руководство

возвращает результат поиска идентификатор или ЛОЖЬ в случае ошибки.

Вы должны использовать ldap_count_entries (), чтобы проверить, действительно ли поиск ldap нашел записи:

$filter = "CN=StudentCN=Users,dc=domain,dc=control";
$result = ldap_search($ldapconn,$filter,$valid_session_username);

$found = false;
if ($result !== false) {
    $count = ldap_count_entries  ($ldapconn, $result);
    if ($count !== false && $count > 0) {
     $found = true;
    }
}

if ($found === true) {
    print $valid_session_username.' does have access to this page';
} else {
    print $valid_session_username.' does NOT have access to this page';
}
...