可以在没有完整 LDAP 路径的情况下引用 AD 中的用户吗?

可以在没有完整 LDAP 路径的情况下引用 AD 中的用户吗?

我有一个应用程序需要验证(以特定用户身份登录)。供应商表示,他们需要对用户的完整 DN 进行硬编码才能实现此操作。

我已经有一段时间没有看过 LDAP 了,但记得一种可以使用“缩短的” LDAP 查询来搜索、引用或验证用户的方法,但却忘记了语法。

问题

哪种 LDAP 语法允许用户引用CN(又名“用户”)而无需对完整OU路径进行硬编码?

原因:如果管理员重新组织 AD OU 结构,某些应用程序将无法通过身份验证,从而导致出现问题

答案1

这实际上取决于应用程序如何实现对象绑定。有些应用程序根本不支持子树搜索(在这种情况下,这真的很令人沮丧)。您应该询问您的供应商,他们的产品是否支持子树搜索,这允许您绑定到目录的更高级别并进行搜索。可能只是他们只能直接绑定到用户对象。我使用的应用程序就是这样的……真的很令人沮丧,我经常遇到您描述的问题。

如果他们的提供商支持它,类似这样的操作将执行子树搜索。

<LDAP://DC=mydomain,DC=com>;&(objectClass=User)(cn=myusername);distinguishedName,cn,AdsPath;subTree

不过,如果他们要求你提供完整的 DN,那么很有可能这就是他们所需要的。

答案2

听起来您具体指的是配置绑定 DN,应用程序将使用它来向 LDAP 进行身份验证?

如果是这种情况,那么您完全正确;您不需要对用户 DN 进行硬编码。UPN 也有效(username@upnsuffix,其中 upnsuffix 通常是您域的 FQDN)。

是否可以发送,以及其他 LDAP 路径(如搜索库或用户/组标识)是否粘贴到特定路径,完全取决于实施软件,因此您的里程会有所不同。

答案3

如果用户对象用于身份验证,我可以从他们如何精确定位用户的角度理解他们的观点。如您所知,LDAP 支持整个 LDAP 命名空间中具有相同 CN(通用名称)的对象。因此,假设您仅使用其 CN 引用对象,则您可能引用的是命名空间另一部分中的用户。

在我看来,这与应用程序需要更自由地查询 LDAP 的情况不同,例如:通常需要解析用户对象的设备将指向合适的树根,以便找到相关用户。当然,在这里,子树搜索肯定有目的。

回到最初的问题,您可以为用户帐户选择“防止意外删除”选项(或任何实际的文字)。这不会阻止它被移动,但可以防止一个可能的失误。您还可以编写一个定期的“dsquery user”命令,以确保您的帐户没有被移动。

最后,如果您的管理员在没有适当的变更控制的情况下“重新安排”您的 OU,那么无论如何都需要有人给予惩罚 ;-)

相关内容