我可以解释LDAPsearch基础后缀的语法吗?

我知道LDAPsearch基础后缀通常与目录服务器的主机名相匹配。 换句话说,我知道如果主机名是od.foobar.com ,我应该使用search基地后缀: dc=od,dc=foorbar,dc=com

这让我不明白为什么我要这样做。 有人可以提供一些背景,并解释我正在做什么?

在Microsoft'拥抱,扩展和改变'LDAP之前,大多数实现都有对象来表示树的根。 即你必须从某个地方开始。

出于某些原因,我还没有完全清楚,在Active Directory中,树/ forest中的每个域的名称都是dc = domain,dc = com,并不是两个单独的对象,而是它的一个虚拟根目录名字空间。

我认为其中的一部分来自于这样一个事实:无论Active Directory如何说,它仍然是一系列链接的域,每个域都需要被视为一个独立的实体。

现在在AD树中有自动传递的信任关系,所以对最终用户来说这个信任关系不大,但即使名称空间看起来有点相邻,也不是真的。

随着AD的一些命名规则,这变得更加明显。 例如,sAMAccountName在一个域内必须是唯一的,不pipe它们是否在同一个容器中。 也就是说,完整的可分辨名称必须是唯一的(在同一个容器中不能有两个John Smith用户),但是在内部用于许多事物的短名称(sAMAccountName)在整个域中必须是唯一的。

其他目录服务也有类似的要求,就像uniqueID在整个目录中应该是唯一的,但更多的是因为应用程序通常会这样做,因为应用程序编写者懒得处理复杂的问题(我不责怪他们,这是一个困难的问题)如何处理两个用户试图使用服务,但存在于两个不同的容器jsmith的简称。 (也许cn = jsmith,ou = London,dc = acme,dc = com和cn = jsmith,ou = Texas,dc = acme,dc = com)。

应用程序如何使用这个目录决定使用哪个用户? 通常的答案是让用户决定。 但是,这意味着抓住这种情况下,提出一个用户界面的用户select和什么。

大多数应用程序编写者只是忽略了这种可能性,只是使用uniqueID或sAMAccountName,因为这是唯一的(有点),而且更容易做到。

uniqueID和sAMAccountName之间的区别在于uniqueID在整个目录名称空间中应该是唯一的。 而sAMAccountName仅在域内保证唯一。 如果AD树有多个域,那么域之间就不存在唯一性。

其他人已经解释了为什么使用域名是一个好主意(但不是强制性的)。 我只是补充说,这个问题是错误的:有一个基于机器名称的基础后缀是推荐的(原因很明显:如果你用gandalf.example.comreplacesarouman.example.com ?)。 您通常只使用委托域名,如果您有example.com ,则使用dc=example,dc=com

目录的根目录必须设置成某些东西。 它可以设置为任何你喜欢的。 将其设置为域名只是一个有用的约定,可确保您的目录名称空间是唯一的。

短版本:匹配您的域名作为基本path是唯一的保证。

做到这一点,如果你的公司与另一个合并,你不会看起来像一个新手pipe理员,你需要合并系统:)

好吧,那是一个短的版本=)