0

最近,我不得不与一个与 host1 和 host2 上的 2 个 AD 交互的应用程序进行交互。我发现连接到其中一台主机时 ldap 连接失败。错误如下所示:

连接到“LDAP://[host1]/RootDSE”失败。
System.DirectoryServices.DirectoryServicesCOMException (0x8007052E):
登录失败:未知用户名或密码错误。

出于故障排除的目的,我安装了 Apache Directory 工具和不同的 CN/DN 组合,我的观察结果是:

  1. 使用 CN(在本例中为Administrator)/[密码] 连接到 host1 时,在获取基本 DN 时出现以下错误:

    获取基本 DN 时出错
    [LDAP:错误代码 49 - 80090308:LdapErr:DSID-0C0903A9,注释:AcceptSecurityContext 错误,数据 52e,v1db1

  2. 当使用管理员的可分辨名称和相同密码连接到 host1 时,我能够成功检索基本 DN

  3. 当仅使用 CN(Administrator再次)/ 连接到 host2 时,我可以成功检索基本 DN 列表。

所以我的问题是,是否可以设置 AD 设置以允许仅使用 CN 而不是完整 DN 进行身份验证?

我对 AD 完全陌生,所以如果我可以在我的问题中提供一些东西,以使人们更好地浏览类似问题,请告诉我。谢谢。

4

1 回答 1

1

什么是 host1 和 host2 - 它们是同一域的不同域控制器 (DC) 还是不同域的域控制器 (DC)?从您所解释的情况来看,如果是这种情况,它们似乎适用于不同的域,那么 host2 只是具有不同的管理员和不同的密码。

直接回答你的问题。当且仅当给定的 CN 是唯一的时,AD 才允许 CN 用于用户登录。因此,无需为此进行任何配置。

但是,还有许多其他方式可以登录 AD。您可以使用sAMAccountNameuserPrincipalName用户的属性,这些包含用户的用户名。第一个包含来自 的用户名DOMAIN\username,其中DOMAIN是 AD 的 NetBIOS 域名(我不确定这是确切的术语,但我使用它是因为没有更好的名称)。第二个属性包含格式为 的用户名username@example.com,其中example.com通常是 AD 的 DNS 域名(尽管可以不同)。

因此,如果您正在搜索比 DN 更短的内容,请使用上述之一。

于 2013-02-11T09:32:17.100 回答