Node.js 使用ldap.js进行Active Directory身份验证

Node.js 使用ldap.js进行Active Directory身份验证,node.js,authentication,active-directory,ldap,Node.js,Authentication,Active Directory,Ldap,我一直在尝试使用ldap.js对Active Directory Windows 2008服务器进行身份验证。唯一的目标是对服务器进行身份验证,我正在使用客户端的东西(而不是创建新的服务器,这正是本文的全部内容)。我对LDAP完全陌生,因此,使用用户名“MYDOMAIN\myuser”进行身份验证在LDAP.js中不起作用,但在ldapsearch中起作用:ldapsearch-Hldap://192.168.1.212:389 -x-D'MYDOMAIN\myuser'-w pa33w0rd-

我一直在尝试使用ldap.js对Active Directory Windows 2008服务器进行身份验证。唯一的目标是对服务器进行身份验证,我正在使用客户端的东西(而不是创建新的服务器,这正是本文的全部内容)。我对LDAP完全陌生,因此,使用用户名“MYDOMAIN\myuser”进行身份验证在LDAP.js中不起作用,但在ldapsearch中起作用:
ldapsearch-Hldap://192.168.1.212:389 -x-D'MYDOMAIN\myuser'-w pa33w0rd-LLL-b“dc=MYDOMAIN”(sAMAccountName=myuser)
它成功地进行了身份验证,但随后吐出了
引用(10)

使用
client.bind(“MYDOMAIN\myuser”,“pa33w0rd',function(err){…})在ldap.js中尝试这一点失败,出现
49 InvalidCredentials错误80090308:ldaper:DSID-0C0903A9,注释:AcceptSecurityContext错误,…

尝试将MYDOMAIN\myuser重新写入为区分名称dn:cn=myuser,dc=MYDOMAIN也会失败,ldap搜索中也会出现身份验证错误。将域\用户(域反斜杠用户格式)转换为DN的正确方式是什么?

来自:

  • 可分辨名称-RFC 1779中规定的格式。例如cn=TestUser,ou=Sales,dc=MyDomain,dc=com
  • NT格式—Windows NT 4.0中使用的名称格式。例如,MyDomain\TestUser,其中MyDomain是域的NetBIOS名称,TestUser是对象的NT名称(Windows 2000之前的名称)。sAMAccountName属性的值是对象的NT名称
  • 因此,NT格式(域反斜杠用户)登录名
    MYDOMAIN\myuser
    可以映射到
    cn=myuser、cn=Users、dc=MYDOMAIN、dc=com
    cn=myuser、cn=Users、dc=MYDOMAIN、dc=local
    或其他一组。我建议您查看主机文件或广告服务器的DNS域名。您还应该将-b(base)更改为包含dc=com或dc=local,或者任何可以修复引用错误的内容