Active Directoryauthentication与ldap.js

我一直在尝试使用ldap.js对Active Directory Windows 2008服务器进行身份validation。 唯一的目标是对服务器进行身份validation,而我正在使用客户端的东西(不是创build新的服务器,这就是所有文档的内容)。 我完全不熟悉LDAP,因此,使用用户名“MYDOMAIN \ myuser”进行身份validation在ldap.js中不起作用,但在ldapsearch中执行: ldapsearch -H ldap://192.168.1.212:389 -x -D 'MYDOMAIN\myuser' -w pa33w0rd -LLL -b "dc=mydomain" '(sAMAccountName=myuser)' ,它authentication成功但是吐出了Referral (10)

在client.bind client.bind("MYDOMAIN\myuser", 'pa33w0rd', function(err) { ... } ); 失败, 49 InvalidCredentialsError 80090308: LdapErr: DSID-0C0903A9, comment: AcceptSecurityContext error, ...

尝试将MYDOMAIN \ myuser重写为Distingushed Name dn:cn = myuser,dc = mydomain也会在ldapsearch中失败并发生身份validation错误。 将DOMAIN \ USER(域反斜杠用户格式)转换为DN的正确方法是什么?

http://www.rlmueller.net/NameTranslateFAQ.htm

  1. 可分辨名称 – 格式如RFC 1779中所述。例如,cn = TestUser,ou = Sales,dc = MyDomain,dc = com。
  2. NT格式 – 在Windows NT 4.0中使用的名称格式。 例如MyDomain \ TestUser,其中MyDomain是域的NetBIOS名称,TestUser是对象的NT名称(Windows 2000以前的名称)。 sAMAccountName属性的值是对象的NT名称。

因此,NT格式(域反斜杠用户)login名称MYDOMAIN\myuser可以映射到cn=myuser,cn=Users,dc=mydomain,dc=comcn=myuser,cn=Users,dc=mydomain,dc=local或一堆其他人。 我build议你看一下AD服务器的主机文件或DNS域名。 您还应该更改-b(base)以包含dc = com或dc = local,或者修改引用错误的任何内容。