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

Node.js用ActiveDirectory库跨信任域LDAP认证报Invalid Credentials怎么办

Active Directory跨信任域认证失败问题解决方案

你遇到的data 52e错误是AD返回的凭证无效标识,但你用Active Directory Explorer可以正常认证,说明域信任配置本身没有问题,问题出在activedirectory库的配置参数上,可按以下步骤修改:

  • 改用全局编录端口
    普通LDAP 389端口默认仅处理当前域的认证请求,跨信任域的认证需要连接域控制器的全局编录端口3268,将url配置修改为ldap://xyz.com.pk:3268
  • 开启请求转发(referrals)
    activedirectory库默认关闭跨域请求转发,需要手动开启该配置,允许xyz.com.pk将abc.pk域的认证请求转发到信任的目标域控制器
  • 取消baseDN限制或传完整用户标识
    跨域认证时如果使用完整UPN(如user_abc@abc.pk)作为用户名参数,无需配置baseDN限制查询范围,AD可直接根据UPN后缀路由到对应域;如果要保留baseDN配置,必须确保用户名传完整的abc\user_abc(域\用户名)格式或完整UPN,不能只传用户名前缀。

修改后的可用代码示例:

const ActiveDirectory = require('activedirectory');
var ad = new ActiveDirectory({
    "url": "ldap://xyz.com.pk:3268",
    "referrals": {
        "enabled": true
    }
});
// 必须传完整UPN或 域\用户名 格式的用户名
ad.authenticate("user_abc@abc.pk", password, function(err, auth) {
    console.log('auth function called with username: '+username);
    if (err) {
        console.log('auth function called and with following err  '+JSON.stringify(err));
        return;
    }           
    if (auth) {
        console.log('Authenticated from Active directory!');
    }
});

如果修改后仍报错,可做以下检查:

  • 确认代码中传入的用户名、密码和你用Active Directory Explorer登录时输入的凭证完全一致
  • 如果是外部信任而非林信任,需确认abc.pk后缀已添加到xyz.com.pk的允许UPN后缀列表中

内容的提问来源于stack exchange,提问作者jazeb Sheraz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:45:03