Проверьте несколько организационных единиц (оу) с помощью django_auth_ldap - PullRequest
0 голосов
/ 12 августа 2011

Наш ldap настроен так, что у нас есть несколько различных организационных единиц (оу).В настоящее время у меня есть проект django, использующий django_auth_ldap для подключения к нашему ldap-серверу, чтобы люди могли войти со своими учетными данными ldap.Однако я могу заставить его работать только для одного из них, когда мне нужно, чтобы он работал с несколькими.В настоящее время он настроен так:

import ldap
from django_auth_ldap.config import LDAPSearch

AUTH_LDAP_SERVER_URI = "ldap://ldap.example.net"
AUTH_LDAP_BIND_DN = ""
AUTH_LDAP_BIND_PASSWORD = ""
AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=people_1,dc=example,dc=net",
   ldap.SCOPE_SUBTREE, "(uid=%(user)s)")
AUTH_LDAP_USER_ATTR_MAP = {"first_name": "givenName",
                           "last_name": "sn",
                           "email": "email",
                           }

Это работает для получения людей из группы people_1.Как я могу настроить его так, чтобы он также выбирал из другого контейнера, например people_2?Я попытался просто добавить "ou = people_1, ou = people_2", который, кажется, не работает.Я все еще довольно новичок в понимании ldap, поэтому я прошу прощения, если это может быть что-то тривиальное, чтобы исправить, и просто не искал должным образом, чтобы найти ответ.Мне потребовалось некоторое время, чтобы просто заставить django_auth_ldap работать на меня (очень рад, когда я это сделал!).

1 Ответ

2 голосов
/ 13 августа 2011

Измените базовый объект на dc=example,dc=net: тогда указанная вами область поиска subtree будет искать все поддеревья в dc=example,dc=net. Для получения дополнительной информации об операциях запроса и ответа LDAP см. Запись в моем блоге "Использование ldapsearch" . Хотя в примерах используются инструменты командной строки, эти концепции помогут вам.

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

...