You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用ldap3 crate通过用户名密码完成ldaps的bind绑定认证

ldap3 crate LDAPS连接传入账号密码实现方法

核心通过simple_bind方法完成账号密码绑定,只需在原有示例基础上新增绑定逻辑、修改连接地址前缀即可,完整示例代码如下:

use ldap3::{LdapConn, Scope, SearchEntry};
use ldap3::result::Result;

fn main() -> Result<()> {
    // 替换为实际LDAPS服务地址,标准LDAPS端口为636
    let mut ldap = LdapConn::new("ldaps://你的LDAP服务地址:636")?;
    // 账号绑定:第一个参数为用户完整DN,第二个参数为对应用户密码
    ldap.simple_bind("cn=管理员,dc=示例,dc=org", "你的用户密码")?.success()?;
    
    // 后续查询逻辑与原示例一致
    let (rs, _res) = ldap.search(
        "ou=Places,dc=example,dc=org",
        Scope::Subtree,
        "(&(objectClass=locality)(l=ma*))",
        vec!["l"]
    )?.success()?;
    for entry in rs {
        println!("{:?}", SearchEntry::construct(entry));
    }
    Ok(ldap.unbind()?)
}

常用注意事项

  • simple_bind第一个参数需传入用户完整可分辨名称(DN),不可直接传短用户名,需按照你的LDAP服务目录规则拼接为完整DN再传入
  • 如果LDAPS服务使用自签名证书,可通过LdapConnBuilder配置跳过证书校验,示例如下:
use ldap3::LdapConnBuilder;

let mut ldap = LdapConnBuilder::new()
    .set_tls_config(|tls| tls.set_verify(rustls::client::ServerCertVerified::assertion()))
    .connect("ldaps://你的LDAP服务地址:636")?;

内容的提问来源于stack exchange,提问作者Allan K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 05:30:01