Сохранение активности сокета LDAP

Мы используем клиентскую библиотеку OpenLDAP для подключения к серверу LDAP. Проблема в том, что если в течение некоторого времени нет активности, сервер (или межсетевой экран посередине) разрывает TCP-соединение.

Наша текущая реализация "keep-alive" просто время от времени выполняет поиск baseDN - есть ли лучшие идеи?

C++, но кажется, что привязки к OpenLDAP очень похожи для большинства языков

Dmitry Khalatov 02.12.2008 23:41

Почему? Не следует оставлять соединения LDAP открытыми.

user207421 21.05.2016 02:59

Поскольку повторное открытие соединения может занять много времени - с аутентификацией, кластерными серверами и т. д.

Dmitry Khalatov 24.05.2016 12:54
Как создать страницу входа в систему с помощью HTML с использованием CSS
Как создать страницу входа в систему с помощью HTML с использованием CSS
Создание страницы входа в систему является важной частью создания веб-сайта или приложения, требующего аутентификации пользователя. Простую страницу...
2
3
4 909
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Единственная альтернатива, кажется, переподключение:

ldap_set_option( ld, LDAP_OPT_RECONNECT, LDAP_OPT_ON );

LDAP_OPT_RECONNECT недоступен в OpenLdap

Отказ от LDAP может работать:

if (ldap_abandon(ld, 0, sctrls, cctrls) != LDAP_SUCCESS)
    {
       /* handle ldap error */
    };

Об этом говорилось в списке рассылки OpenLDAP:

http://www.openldap.org/lists/openldap-devel/200905/msg00008.html

Вкратце: Запрос на отказ отправляет сообщение на сервер, однако сервер не отправляет ответ клиенту на запросы об отказе. Ноль не является допустимым идентификатором MSGID для запросов LDAP. Поскольку ноль является недопустимым идентификатором MSGID, и сервер не отвечает на запросы отказа, теоретически сервер проигнорирует запрос отказа для нулевого идентификатора msgid. Это обеспечит активность TCP-сокета, не позволяя брандмауэру разорвать соединение.

Видеть:

  • RFC 4511, раздел 4.11: Отказ от операции
  • RFC 4511, раздел 4.1.1.1: MessageID

http://tools.ietf.org/html/rfc4511

Другие вопросы по теме