首页 > 解决方案 > LDAP 身份验证失败

问题描述

我有一个 nodejs 应用程序,它使用 passport-ldapauth 在本地成功地使用 LDAP 进行身份验证。

但是,在另一个环境中它不起作用。我编写了一个可以成功查询 LDAP 的 .net 应用程序。不同的是它使用NTLM。

我不熟悉 NTLM 以及它如何影响我的 nodejs 项目。

LDAP_URL = ldap://<ldap_server_ip address>
LDAP_BIND_DN = ldapadmin
LDAP_BIND_CREDENTIALS = password123
LDAP_SEARCH_BASE = DC=mydomain,DC=com
LDAP_SEARCH_FILTER = (sAMAccountName={{username}})

我在这里说的是苹果和橘子吗?即使它们在我的 .net 应用程序中工作,我也会得到无效的凭据。

节点代码:

super(
  (
    request: Request,
    callback
  ) => {
    const options = {
      server: {
        url: getEnvValue('LDAP_URL'),
        bindDN: getEnvValue('LDAP_BIND_DN'),
        bindCredentials: getEnvValue('LDAP_BIND_CREDENTIALS'),
        searchBase: getEnvValue('LDAP_SEARCH_BASE'),
        searchFilter: getEnvValue('LDAP_SEARCH_FILTER'),
      },
      passReqToCallback: true,
    };
    callback(null, options);
  }
);

任何想法将不胜感激。

吉娜

标签: node.jsauthenticationactive-directoryldapntlm

解决方案


很多小时后,答案比预期的要简单:

LDAP_BIND_DN = mydomain\ldapadmin

吉娜


推荐阅读