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

时间:2013-09-23 22:44:50

标签: node.js authentication active-directory ldap

我一直在尝试使用ldap.js对Active Directory Windows 2008服务器进行身份验证。唯一的目标是对服务器进行身份验证,我正在使用客户端(不创建新服务器,这是所有documentation的内容)。我完全不熟悉LDAP,因此,使用用户名“MYDOMAIN \ myuser”进行身份验证在ldap.js中无效,但在ldapsearch:ldapsearch -H ldap://192.168.1.212:389 -x -D 'MYDOMAIN\myuser' -w pa33w0rd -LLL -b "dc=mydomain" '(sAMAccountName=myuser)'中进行身份验证但成功进行了验证Referral (10)

client.bind("MYDOMAIN\myuser", 'pa33w0rd', function(err) { ... } );的ldap.js中尝试使用49 InvalidCredentialsError 80090308: LdapErr: DSID-0C0903A9, comment: AcceptSecurityContext error, ...

尝试重新编写MYDOMAIN \ myuser作为Distingushed Name dn:cn = myuser,dc = mydomain也会在ldap搜索中失败并出现auth错误。将DOMAIN \ USER(域反斜杠用户格式)转换为DN的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

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

  
      
  1. 专有名称 - RFC 1779中指定的格式。例如cn = TestUser,ou = Sales,dc = MyDomain,dc = com。
  2.   
  3. NT格式 - Windows NT 4.0中使用的名称格式。例如MyDomain \ TestUser,其中MyDomain是域的NetBIOS名称,TestUser是对象的NT名称(Windows 2000之前的名称)。 sAMAccountName属性的值是对象的NT名称。
  4.   

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