
У меня есть вопрос по Openldap. Я использую решение (PingFederate), которое получает ошибки от openldap, чтобы делать разные вещи в зависимости от фильтра. Например, я могу сказать: обнаружить недействительную ошибку DN и когда вы ее получите, что-то сделать.
Я установил olcPPolicyUseLockout в значение true в ppolicy, чтобы получать больше информации при наличии недействительных учетных данных; так что Pingfederate мог бы это обнаружить. Но это не работает
При использовании ldapwhoami с -e ppolicy я получаю следующее: ldap_bind: Неверные учетные данные (49); Срок действия пароля истек ldap_bind: Неверные учетные данные (49); Учетная запись заблокирована
Итак, мой вопрос заключается в следующем: что означает точка с запятой в Openldap? Учитывается ли сообщение после точки с запятой? Передает ли Openldap всю ошибку другим решениям, с которыми он интегрирован?
решение1
Прежде всего, следует отметить, что инструменты командной строки OpenLDAP выводят текстовое представление кода результата и диагностического сообщения, которое не является точной кодировкой протокола передачи данных.
LDAP PDU — это сообщения в кодировке ASN.1. Чтобы понять структуру ответа, вы можете посмотретьRFC 4511, раздел 4.1.9Для наблюдения за LDAP PDU, фактически отправленными компонентами LDAP, очень полезен LDAP-диссектор в Wireshark.
В основном это наложение OpenLDAPslapo-ppolicyорудийчерновик-behera-ldap-password-policy-09. В этом интернет-проекте определены так называемые расширенные элементы управления как для запросов, так и для ответов, которые расширяют семантику протокола операции привязки.
Это означает, что каждый клиент LDAP, поддерживающий политику, должен 1. отправитьуправление запросами политики паролейи 2. декодировать и интерпретироватьконтроль реакции.
Смотрите такжедемо-код python-ldapВ качестве примера.