我有一个关于 Openldap 的问题。我正在使用从 openldap 获取错误的解决方案(PingFederate)根据过滤器执行不同的操作。例如我可以说:检测无效的 DN 错误,当你得到它时做一些事情。
我在 ppolicy 中将 olcPPolicyUseLockout 设置为 true,以便在凭据无效时获取更多信息;这样 Pingfederate 就会抓住它。但它不起作用
当我将 ldapwhoami 与 -e ppolicy 一起使用时,我得到以下信息: ldap_bind: Invalid credentials (49); 密码过期 ldap_bind:凭据无效 (49);帐户被锁定
所以我的问题如下:Openldap 中的分号是什么意思?是否考虑分号后的消息?Openldap 是否将整个错误传达给与其集成的其他解决方案?
首先请注意,OpenLDAP 命令行工具输出结果代码和诊断消息的一些文本表示,这不是精确的在线协议编码。
LDAP PDU 是 ASN.1 编码的消息。要了解响应结构,您可以查看RFC 4511 第 4.1.9 节。要观察 LDAP 组件实际发送的 LDAP PDU,Wireshark 中的 LDAP 解析器非常有用。
主要是 OpenLDAP 的覆盖slapo-ppolicy实现了 draft-behera-ldap-password-policy-09。这个互联网草案为请求和响应指定了所谓的扩展控制,它们扩展了绑定操作的协议语义。
这意味着每个 ppolicy-aware LDAP 客户端必须 1. 发送密码策略请求控制和 2. 解码和解释响应控制。
另请参阅python-ldap 演示代码作为示例。