最近,我不得不与在host1和host2上与2个AD交互的应用程序进行交互。我发现连接到其中一个主机时ldap连接失败了。错误如下所示:
与'LDAP:// [host1] / RootDSE'的连接失败 System.DirectoryServices.DirectoryServicesCOMException(0x8007052E):
登录失败:未知用户名或密码错误。
出于疑难解答的目的,我安装了Apache Directory工具和不同的CN / DN组合,我的观察是:
使用CN(在本例中为Administrator
)/ [password]连接到host1时,在获取基本DN时出现以下错误:
获取基本DN时出现错误 [LDAP:错误代码49 - 80090308:LdapErr:DSID-0C0903A9,注释:AcceptSecurityContext错误,数据52e,v1db1
使用Administrator的专有名称和相同的密码连接到host1时,我能够成功检索基本DN
当只使用CN(再次Administrator
)连接到host2时,我可以成功检索基本DN列表。
所以我的问题是,我是否可以设置AD设置以允许仅使用CN而不是完整DN进行身份验证?
我对AD完全不熟悉,所以如果有什么东西我可以在我的问题中提供,以便让浏览类似问题的人更好,请告诉我。感谢。
答案 0 :(得分:0)
什么是host1和host2 - 它们是同一域的不同域控制器(DC)还是针对不同的域?根据您的解释,如果是这种情况,它们似乎适用于不同的域,那么host2只是拥有不同的管理员和不同的密码。
直接回答您的问题。当且仅当给定的CN是唯一的时,AD允许CN用于用户登录。所以没有必要为此做任何配置。
但是,还有许多其他方法可以在AD中登录。您可以使用用户的sAMAccountName
或userPrincipalName
属性,这些属性包含用户的用户名。第一个包含来自DOMAIN\username
的用户名,其中DOMAIN
是AD的NetBIOS域名(我不确定这是确切的术语,但我使用它是因为缺乏更好的)。第二个属性包含username@example.com
形式的用户名,其中example.com
通常是AD的DNS域名(尽管它可能不同)。
因此,如果您正在搜索比DN更短的内容,请使用上述内容之一。