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