Проверете множество организационни единици (ou) с django_auth_ldap

Нашият ldap е настроен така, че да имаме множество различни организационни единици (ou). В момента имам django проект, използващ django_auth_ldap за свързване с нашия ldap сървър, така че хората да могат да влизат със своите ldap идентификационни данни. Мога обаче да го накарам да работи само за едно ou, когато имам нужда да работи с няколко. В момента съм го настроил така

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 да работи за мен (изключително щастлив, когато го направих!).


person The Jug    schedule 12.08.2011    source източник


Отговори (1)


Променете основния обект на dc=example,dc=net: тогава обхватът на търсене на subtree, който сте посочили, ще търси всички поддървета под dc=example,dc=net. За повече информация относно операциите за заявка за търсене и отговор на LDAP вижте записа в моя блог "Използване ldapsearch". Въпреки че примерите използват инструменти от командния ред, концепциите ще ви помогнат.

Освен това, като добра практика за програмиране, трябва да предоставите ограничение на размера и времево ограничение. Стойностите по подразбиране за тези параметри се различават в зависимост от вашия API и може да не отговарят на вашите нужди.

person Terry Gardner    schedule 12.08.2011
comment
Аха! Реших, че е нещо подобно. Мислех си по някаква причина, че o трябва да бъде уточнено, преди да започне да търси. Това вече има смисъл. Благодаря ти! - person The Jug; 15.08.2011