С удовольствием напишу :) (не знаю правда, что из этого выйдет с моими познаниями в этой предметной области...)
Вчера ковырялся и понял, что поставил вопрос не совсем корректно.
Правильней было бы сказать так: как обратиться к django_auth_ldap, чтобы вести дальнейшую работу с AD от имени аутентифицированного пользователя?
Если соединяться с AD-LDAP как обычно, то выглядит это так:
Функция установки соединения:
def ad_connect():
ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)
dc = 'ldaps://domain.org:636'
aduser = 'aduser@domain.org'
password = 'password'
try:
l = ldap.initialize(dc)
l.set_option(ldap.OPT_REFERRALS, 0)
l.set_option(ldap.OPT_PROTOCOL_VERSION, 3)
l.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND)
l.set_option(ldap.OPT_X_TLS_DEMAND, True)
l.set_option(ldap.OPT_DEBUG_LEVEL, 255)
l.simple_bind_s(aduser, password)
except ldap.LDAPError, error_message:
connectError = 'Error connecting to LDAP server: ' + str(error_message)
return False
return l
Далее при запросе к LDAP просто обращаемся к функции установки соединения.
def ad_getdata():
base_dn = 'ou=Users,dc=domain,dc=org' # Где ищем
filter = '(&(objectClass=user)(objectCategory=person)(!(objectClass=computer)))' # Фильтр
connect = ad_connect()
search = connect.seach_s(
base_dn,
ldap.SCOPE_SUBTREE,
filter,
[список запрашиваемых LDAP-атрибутов]
......
Если есть мысли буду очень признателен :)
PS: Огромное спасибо авторам перевода документации! Очень сильно помогает.