3

我一直在尝试使用 ldap.js 对 Active Directory Windows 2008 服务器进行身份验证。唯一的目标是对服务器进行身份验证,我正在使用客户端的东西(不是创建新服务器,这是所有文档的内容)。我对 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)

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

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

4

1 回答 1

3

来自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 格式(域反斜杠用户)登录名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,或任何修复引用错误的内容。

于 2013-09-23T22:44:50.043 回答