Python ldap vs ldap3 Несоответствия - PullRequest
0 голосов
/ 12 июня 2019

Я застрял, используя python-ldap (используется flask_appbuilder ) для проекта. Я заметил, что python-ldap завершается с ошибкой «Ошибка инициализации SSL / TLS». Чтобы убедиться, что мои настройки ldap были правильными, я написал скрипт, используя ldap3 вместе с python-ldap и заметил, что ldap3 успешно работает при использовании той же конфигурации, что и python-ldap.

Тестовый код:

import ldap3
import ldap
import ssl

URL = 'ldaps://....example.com:636'
USER = 'CN=...'
PASS = '...'
SEARCH = 'OU=...'
FILTER = '(&(objectClass=user))'

# ldap3
server = ldap3.Server(
    URL,
    use_ssl=True,
    tls=ldap3.Tls(validate=ssl.CERT_REQUIRED),
)
conn = ldap3.Connection(server, USER, PASS)
conn.bind()
conn.search(SEARCH, FILTER)

# python-ldap
con = ldap.initialize(URL, 4)
con.set_option(ldap.OPT_REFERRALS, 0)
con.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_ALLOW)
con.set_option(ldap.OPT_X_TLS_NEWCTX,0)
con.start_tls_s()
con.bind_s(USER, PASS)

Я могу успешно получить результаты из блока ldap3, но когда достигается блок python-ldap start_tls_s, я получаю:

ldap.UNAVAILABLE: {'info': u'00000000: LdapErr: DSID-0C091338, comment: Error initializing SSL/TLS, data 0, v4563', 'desc': u'Server is unavailable'}

Поведение является одинаковым как на моем ноутбуке, так и на тестовой машине (оба являются linux box). Кто-нибудь знает, почему возникает такая разница?

...