Каков наиболее эффективный общий запрос LDAP для аутентификации пользователей в AD? - PullRequest
0 голосов
/ 26 августа 2011

Мы используем LDAP для аутентификации пользователей. Другая сторона канала LDAP - очень большая реализация Active Directory. Мы обнаружили, что запрос аутентификации занимает слишком много времени (15 секунд и более).

Вот представление о том, что мы делаем:

ldap://ldap.myco.com/DN?dc=myco,dc=com??sub?(sAMAccountName=John)

Каков наилучший способ добиться этого, который будет хорошо работать для любой гигантской реализации AD?

Спасибо!

Ответы [ 3 ]

3 голосов
/ 27 августа 2011

sAMAccountName определенно проиндексировано, хотя ваш поиск также включает компьютеры и группы. Вы могли бы далее квалифицировать это с (&(objectCategory=person)(objectClass=user)(samAccountName={0})).

Большой вопрос: почему вы начинаете поиск? Если все, что вам нужно, это проверить имя пользователя и пароль с помощью привязки LDAP, выполните привязку к LDAP: // DC = myco, DC = com и получите доступ myDirectoryEntry.NativeObject. Если он выдает исключение, у вас есть проблема.

Кроме того, что такое "ldap.myco.com"? Это балансировщик нагрузки? Это имя вашего домена? Вы должны быть в состоянии сделать привязку без сервера здесь ...

0 голосов
/ 27 августа 2011

Брайан Десмонд - точный ответ (и я проголосовал как таковой). Вы получите лучшую производительность от простого связывания.

Ради избыточности (и для распределения нагрузки) у вас должно быть несколько DC, доступных для привязки. Алгоритм, который используют клиенты Microsoft AD для определения местоположения контроллеров домена (на основе членства в сайте и весов и значений предпочтений SRR RR), не является тривиальным, но вы можете приблизиться, получая адреса (или имена) нескольких контроллеров домена, с которыми нужно связываться.

0 голосов
/ 27 августа 2011

Если индексировано sAMAccountName, этот запрос должен быть O (1) или O (log (N)) в зависимости от структуры индекса.Если это занимает 15 секунд, это звучит как O (N), что означает, что оно не проиндексировано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...