Аутентификация LDAP PHP с помощью двух подразделений?

#php #authentication #ldap

Вопрос:

У меня есть PHP-скрипт с аутентификацией LDAP, который отлично работает. Теперь у меня есть проблема, которую я хочу найти в двух подразделениях. Мне это нужно, потому что мы выполняем миграцию Windows и имеем временные два подразделения. Я хочу, чтобы, если участника нет в первом подразделении, найдите пользователя во втором подразделении.

Вот мой код. Я подумал, что мог бы продублировать свою строку и переименовать подразделение в ldap_dn2 и CompanyNew :

 $ldap_dn = "OU=Company,DC=mydomain,dc=de";
$ldap_dn2 = "OU=CompanyNew,DC=mydomain,dc=de";
 

Но что дальше? Как я могу проверить это в своем коде:

Для того единственного, кто у меня есть:

$result = ldap_search($ldap, $ldap_dn, $filter, $attr) or exit("LDAP-Server kann nicht durchsucht werden!");

Как может человек сказать «хорошо, не найден $result , поэтому ищите $ldap_dn2 «?

ОТРЕДАКТИРОВАНО: друг помог мне, и это решение:

 function performLDAPSearch($ldap, $ldap_dn, $ldap_dn_2, $filter, array $attr)
{
    $result = ldap_search($ldap, $ldap_dn, $filter, $attr);
    $entries = ldap_get_entries($ldap, $result);
    if (!$entries || count($entries) == 0) {
        $result = ldap_search($ldap, $ldap_dn_2, $filter, $attr);
    }
    if (!$result) {
        exit("LDAP-Server kann nicht durchsucht werden!");
    }
    return $resu<
}
 

Комментарии:

1. Что $result содержится, когда первый поиск завершается неудачей?

2. Вы можете использовать or синтаксис типа в запросе ldap, чтобы он автоматически выполнял поиск в обоих подразделениях.

3. мой пользователь находится в первом $ldap_dn, повторил результат $и получил «0». я думал, что могу сказать «если результат==0 поиск $ldap_dn2..но это не работает

4. вы имеете в виду: $результат = ldap_search($ldap, $ldap_dn, $фильтр, $attr) или ldap_search($ldap, $ldap_dn2, $фильтр, $attr) выход(«LDAP-сервер kann nicht durchsucht werden!»);? это не работает :/

5. По какому параметру вы проводите фильтрацию? Имя,фамилия, имя пользователя, идентификатор пользователя ??