Прошу посоветовать как быть, нужно четкое решение.
Задача:
Авторизировать пользователей по логину паролю на веб морде, логин пароль проверять на серверАХ LDAP
Проблемы:
Серверов порядка 15 штук, пользователь может быть на любом из серверов, т.е. проверка делается с перебором всех серверов и попыткой ldap_bind(), если юзер к несчастью оказывается на сервере который в конце списка, то авторизация длиться порядка 2 минут. Что не правильно.
Попытка решить проблему:
Самый быстрый способ, опрос всех серверов ночью и вбивание их в свою базу, так при входе мы точно будем знать к какому серверу конектиться, причем у нас обычно сначала делают учетку и только через 2-3 дня комп настраивают, т.е. не будет такого что человек не зайдет. Но тут возникла проблема, ldap_search не возвращает более 1000 строк, а если их более то кидает ошибку. Использование LDAP_OPT_SIZELIMIT результата не дал.
А компьютеры получаются в домене находятся? Если да, то авторизация уже проходит в самой системе и остается только в заголовках браузера посмотреть ее. Кстати, там же и хранятся данные на каком сервере проходит авторизация пользователя.
Решением моей задачи оказалось такая штука - «Глобальный каталог» (globalcatalog)
А вот решение как получить более 1000 записей было в ldap pager, только это штука не во всех версиях есть
То что юзер ищется на всех серверах - не очень круто. Нужна единая точка входа которая знает про то где хранится юзер - на каком сервере, и только туда запрос слать. Это же сколько вхолостую нужно запросов слать... Я бы сделал перед ним отдельный сервак, который отвечает только за авторизацию, ну и у него есть инфа кто где хранится. Авторизовался - перекинули на app сервак уже нужный.