Django LDAPS TLS начал давать сбой с ошибкой SERVER_DOWN

Сегодня мы имели удовольствие наблюдать, как LDAPS не работает в приложении Django.

Наши требования к Пип включают:

python-ldap==3.3.1
django-auth-ldap==3.0.0

Наш файл настроек Django включает:

AUTH_LDAP_SERVER_URI = "ldaps://ldaps.server.net.au:636"

AUTH_LDAP_CONNECTION_OPTIONS = {
    ldap.OPT_DEBUG_LEVEL: 1,
    ldap.OPT_REFERRALS: 0,
    ldap.OPT_NETWORK_TIMEOUT: 5.0,
    ldap.OPT_TIMEOUT: 5.0,
}

Неясная ошибка, которую мы видим:

Caught LDAPError while authenticating sighmon: SERVER_DOWN({'result': -1, 'desc': "Can't contact LDAP server", 'errno': 115, 'ctrls': [], 'info': '(unknown error code)'},)

Он прекрасно работал в течение ~2 лет до сегодняшнего дня.

Мы пытались прикрепить django-auth-ldap к различным более старым версиям, но все они потерпели неудачу одинаково.

Решением было сначала получить отладочный вывод, установив опции с помощью AUTH_LDAP_GLOBAL_OPTIONS вместо AUTH_LDAP_CONNECTION_OPTIONS.

Затем это дало более полезную ошибку: TLS: peer cert untrusted or revoked (0x42).

Мы подтвердили, что LDAP без S аутентифицируется нормально, поэтому продолжили копаться в проблемах TLS.

Мы проверили подключение к серверу LDAPS с помощью: telnet ldaps.server.net.au:636 и это счастливо соединилось. Таким образом, казалось, что наш LDAPS-сервер был счастлив.

Мы проверили сертификаты с помощью: openssl s_client -showcerts -verify 5 -connect ldaps.server.net.au:636 < /dev/null

Все казалось в порядке, поэтому мы продолжили изучать варианты LDAP...

Этот вариант исправил ситуацию для нас: ldap.OPT_X_TLS_REQUIRE_CERT: ldap.OPT_X_TLS_ALLOW Таким образом, наши полные опции оказались следующими:

AUTH_LDAP_GLOBAL_OPTIONS = {
    ldap.OPT_DEBUG_LEVEL: 1,
    ldap.OPT_REFERRALS: 0,
    ldap.OPT_NETWORK_TIMEOUT: 5.0,
    ldap.OPT_TIMEOUT: 5.0,
    ldap.OPT_X_TLS_REQUIRE_CERT: ldap.OPT_X_TLS_ALLOW,
}

Смотрите открытый вопрос с этим и другими решениями: https://github.com/django-auth-ldap/django-auth-ldap/issues/198

Следующий шаг: выяснить, что не так с нашим пучком сертификатов

Вернуться на верх