什么是Active Directory域服务,它是如何工作的?

这是有关Active Directory域服务(AD DS)的典型问题 。

什么是Active Directory? 它做什么,它是如何工作的?

Active Directory如何组织:森林,子域,树,站点或OU


我发现自己几乎每天都会解释一些我所认为的常识。 这个问题有望成为大多数基本Active Directory问题的典型问题和答案。 如果你觉得你可以改进这个问题的答案,请编辑。

什么是Active Directory?

Active Directory域服务是Microsoft的目录服务器。 它提供了authentication和授权机制以及可以部署其他相关服务的框架(AD证书服务,AD联合服务等)。 它是一个包含对象的LDAP兼容数据库。 最常用的对象是用户,计算机和组。 这些对象可以按照任意数量的逻辑或业务需求组织成组织单位(OU)。 然后,可以将组策略对象(GPO)链接到OU,从而集中pipe理组织中各种用户或计算机的设置。

当人们说“Active Directory”时,他们通常指的是“Active Directory域服务”。 值得注意的是,还有其他Active Directoryangular色/产品,例如证书服务,联合身份validation服务,轻型目录服务,权限pipe理服务等。此答案专门针对Active Directory域服务。

什么是域名,什么是森林?

森林是安全的边界。 除非每个单独森林的pipe理员在它们之间创build信任 ,否则单独森林中的对象无法互相交互。 例如,对于domain1.com (通常是林中权限最高的帐户)的企业pipe理员帐户,在名为domain2.com的第二个林中将不具有任何权限,即使这些林存在于同一个LAN中也是如此有一个信任的地方。

如果您有多个不相交的业务单位,或者需要单独的安全边界,则需要多个森林。

一个域是一个pipe理边界。 域是森林的一部分。 森林中的第一个域被称为森林根域。 在许多中小型组织(甚至是一些大型组织)中,您只能在单个森林中find单个域。 森林根域定义了森林的默认名称空间。 例如,如果新林中的第一个域名为domain1.com ,那么这就是林根域。 如果你有一个子域的业务需求,例如芝加哥的一个分支机构,你可以命名子域。 子域的FQDN将是chi.domain1.com 。 你可以看到子域的名字被预先加了林根域的名字。 这通常是如何工作的。 你可以在同一个森林里有不相交的命名空间,但是这是一个完全独立的蠕虫在不同的时间。

在大多数情况下,你会想尽一切可能拥有一个AD域。 它简化了pipe理,AD的现代版本使委派基于OU的控制变得非常容易,这减less了对子域的需求。

我可以任意指定我的域名,对吧?

不是真的。 dcpromo.exe ,把服务器升级到DC的工具不是傻瓜式的。 它可以让你做出错误的决定,所以如果你不确定的话,请注意这个部分。 (编辑:在Server 2012中不build议使用dcpromo 。使用Install-ADDSForest PowerShell cmdlet或从服务器pipe理器安装AD DS。)

首先,不要使用.local,.lan,.corp或其他任何废话组成的顶级域名。 这些TLD 保留。 互联网名称与数字地址分配机构(ICANN)现在正在销售顶级域名(TLD),因此您今天使用的mycompany.corp明天可能属于某人 如果您拥有mycompany.com ,那么明智的做法是使用internal.mycompany.comad.mycompany.com作为内部AD名称。 如果您使用mycompany.com作为外部可parsing的网站,则应该避免将其用作您的内部AD名称,因为您最终将得到一个裂脑DNS。

域控制器和全局编录

响应身份validation或授权请求的服务器是域控制器(DC)。 在大多数情况下,域控制器将保存全局编录的副本。 全局编录(GC)是森林中所有域中的部分对象。 它可以直接search,这意味着跨域查询通常可以在GC上执行,而无需在目标域中引用DC。 如果在端口3268上查询DC(如果使用SSL,则为3269),则正在查询GC。 如果查询端口389(如果使用SSL为636),则将使用标准的LDAP查询,而其他域中存在的对象可能需要一个引用 。

当用户尝试使用其AD凭据login到join到AD的计算机时,用户帐户和正在login的计算机帐户都会将已腌制和散列的用户名和密码组合发送到DC。电脑也login。 这很重要,因为如果AD中的计算机帐户发生某些情况,如某人重置帐户或将其删除,则可能会出现错误信息,说明计算机与域之间不存在信任关系。 即使您的networking证书没有问题,计算机也不再被信任login到域中。

域控制器可用性问题

我听到“我有一个主域控制器(PDC),想要安装一个备份域控制器(BDC)”更频繁,我想相信。 PDCs和BDCs的概念随Windows NT4而死亡。 PDC的最后堡垒是在Windows 2000过渡混合模式AD中,当你还有NT4 DC时。 基本上,除非您支持从未升级过的15年前的安装,否则您确实没有PDC或BDC,只有两个域控制器。

多个DC能够同时应答来自不同用户和计算机的authentication请求。 如果一个人失败了,那么其他人将继续提供authentication服务,而不必像在四天时间里那样做一个“主要”。 每个域至less有两个DC是最好的做法。 这些DC应同时拥有GC的副本,并且都应该是为您的域保存Active Directory集成DNS区域副本的DNS服务器。

FSMOangular色

“所以,如果没有PDC,为什么只有一个DC可以有PDCangular色?

我听了很多 有一个PDC模拟器angular色。 这不像是一个PDC。 实际上,有5个灵活的单主操作angular色(FSMO) 。 这些也被称为操作主angular色。 这两个术语是可以互换的。 他们是什么,他们做什么? 好问题! 五个angular色和他们的function是:

域名命名大师 – 每个森林只有一个域名命名大师。 域命名大师确保当一个新的域添加到一个唯一的森林。 如果持有此angular色的服务器处于脱机状态,则无法更改AD命名空间,其中包括添加新子域等内容。

架构大师 – 森林中只有一个架构操作大师。 它负责更新Active Directory架构。 需要此function的任务(例如准备AD作为DC的新版Windows Server或安装Exchange)需要进行架构修改。 这些修改必须从Schema Master完成。

基础架构大师 – 每个域有一个基础架构大师。 如果你在森林中只有一个域名,你不需要担心。 如果你有多个森林,那么你应该确保这个angular色不是由一个也是GC持有者的服务器持有,除非森林中的每个DC都是一个GC 。 基础架构主pipe负责确保正确处理跨域引用。 如果将一个域中的用户添加到另一个域中的组中,则所涉及域的基础架构主机确保正确处理它。 如果它位于全局编录上,则该angular色将无法正常工作。

RID主机 – 相对ID主机(RID主机)负责将RID池发给DC。 每个域有一个RID主机。 AD域中的任何对象都具有唯一的安全标识符(SID) 。 这由域标识符和相对标识符的组合组成。 给定域中的每个对象都具有相同的域标识符,因此相对标识符是使对象唯一的标识符。 每个DC都有一个要使用的相关ID池,所以当DC创build一个新对象时,它会附加一个尚未使用的RID。 由于DC发布的是非重叠池,因此每个RID在域的生命周期内应保持唯一。 当一个DC到达其池中的约100个RID时,它从RID主设备请求一个新的池。 如果RID主服务器长时间处于脱机状态,对象创build可能会失败。

PDC模拟器 – 最后,我们得到了PDC模拟器angular色中最广泛被误解的angular色。 每个域有一个PDC模拟器。 如果authentication尝试失败,则将其转发到PDC模拟器。 如果密码在一个DC上更新并且尚未复制到其他DC,则PDC Emulator将用作“tie-breaker”。 PDC模拟器也是控制整个域的时间同步的服务器。 所有其他DC同步从PDC模拟器的时间。 所有的客户端都从他们login的DC同步他们的时间。 所有的事情都在5分钟内保持是很重要的,否则Kerberos会中断,当这种情况发生时,所有人都会哭泣。

要记住的重要一点是,这些angular色运行的服务器并不是一成不变的。 把这些angular色转移到一般情况下是微不足道的,所以有些DC比其他DC做得稍微多些,如果短时间停下来,一切都会正常运行。 如果他们长时间停机,很容易透明地转移angular色。 这比NT4 PDC / BDC日子要好得多,所以请停止以这些旧名称呼叫你的区议会。 🙂

所以,呃…区议会如果可以独立运作,共享信息呢?

复制,当然 。 默认情况下,同一站点中属于同一域的数据中心将以15秒为间隔将数据复制到对方。 这确保了一切都是相对最新的。

有一些“紧急”事件触发即时复制。 这些事件是:一个帐户被locking了太多失败的login,更改了域密码或locking策略,LSA密钥被更改,密码在DC的计算机帐户上被更改,或者RID主控angular色被转移到一个新的DC。 任何这些事件都会触发立即复制事件。

密码更改处于紧急和非紧急之间,并被独特处理。 如果在DC01上更改了用户的密码,并且在复制发生之前用户尝试login到对DC02进行身份validation的计算机,则预计会失败,对吧? 幸运的是,这并没有发生。 假设还有第三个DC,这里叫做DC03 ,它拥有PDC模拟器的angular色。 当用户的新密码更新DC01 ,该更改也会立即复制到DC03 。 当DC02身份validation尝试失败时, DC02会将该身份validation尝试转发给DC03 ,validation身份确实是否正常,并允许login。

我们来谈谈DNS

DNS对正常运作的AD至关重要。 官方的微软合作伙伴关系是,如果设置正确,任何DNS服务器都可以使用。 如果你尝试使用BIND来托pipe你的AD区域,那么你很高。 认真。 坚持使用AD集成DNS区域,如果必须的话,可以为其他区域使用条件或全局转发器。 你的客户都应该configuration为使用你的AD DNS服务器,所以在这里有冗余是很重要的。 如果您有两个DC,请让它们都运行DNS并将您的客户端configuration为使用它们进行名称parsing。

另外,如果您有多个DC,则需要确保它们不首先列出DNSparsing。 这可能会导致它们位于“复制岛”上,与AD复制拓扑的其余部分断开连接,无法恢复。 如果您有两台服务器DC01 - 10.1.1.1DC02 - 10.1.1.2 ,那么他们的DNS服务器列表应该像这样configuration:

服务器:DC01(10.1.1.1)
主DNS – 10.1.1.2
备用DNS – 127.0.0.1

服务器:DC02(10.1.1.2)
主DNS – 10.1.1.1
备用DNS – 127.0.0.1

好的,这看起来很复杂。 为什么我要使用AD?

因为一旦你知道你在做什么,你的生活就会变得更好。 AD允许用户和计算机pipe理的集中化,以及资源访问和使用的集中化。 想象一下你在办公室有50个用户的情况。 如果您希望每个用户都有自己的login到每台计算机,则必须在每台计算机上configuration50个本地用户帐户。 使用AD,您只需要创build一次用户帐户,并且默认情况下可以login域中的任何一台PC。 如果你想加强安全,你必须做50次。 sorting的噩梦,对吧? 另外想象一下,你有一个文件共享,你只希望有一半的人可以到达。 如果你不使用AD,你需要在服务器上手动复制他们的用户名和密码,以便无限访问,或者你必须build立一个共享帐户,并为每个用户提供用户名和密码。 一种方式意味着你知道(并不得不不断更新)用户的密码。 另一种方式意味着你没有审计跟踪。 不好,对吧?

您还可以在设置AD后使用组策略。 组策略是一组链接到OU的对象,它们定义这些OU中的用户和/或计算机的设置。 例如,如果要使“关机”不在500台实验室PC的“开始”菜单上,则可以在组策略中的一个设置中执行此操作。 不需要花费几个小时或几天的时间手工configuration正确的registry项,您只需创build一次组策略对象,将其链接到正确的OU或OU,而不必再次考虑。 有数百个可configuration的GPO,而组策略的灵活性是微软在企业市场占据主导地位的主要原因之一。

注意:这个答案是从另外一个问题合并到这个问题中的,问题是森林,子域,树木,网站和OU之间的区别。 这不是最初写成这个具体问题的答案。


森林

当您需要安全边界时,您想创build一个新的森林。 例如,您可能需要使用ADpipe理的外围networking(DMZ),但出于安全原因,您不希望内部AD在外围networking中可用。 在这种情况下,您需要为该安全区域创build一个新的目录林。 如果您有多个不相互信任的实体,您可能还需要这种分离 – 例如一个包含独立运营的独立企业的壳公司。 在这种情况下,你希望每个实体都有自己的森林。


子域

真的,你不需要这些了。 有几个很好的例子,当你想要一个子域。 一个遗留的原因是由于不同的密码策略要求,但是这不再有效,因为从Server 2008以来有可用的细粒度密码策略。如果您的区域具有令人难以置信的差的networking连接性,并且您希望只需要一个子域大幅度减less复制stream量 – 具有卫星WAN连接的游轮就是一个很好的例子。 在这种情况下,每艘游轮可以是自己的子域,以便相对独立,同时还能够利用与同一公司的其他域相同的森林中的好处。


这是一个奇怪的球。 当您希望维护单个森林的pipe理优势时使用新树,但在新的DNS名称空间中有一个域。 例如, corp.example.com可能是林根,但是您可以使用新树在同一个林中拥有ad.mdmarra.com 。 儿童领域的相同规则和build议适用于此 – 谨慎地使用它们。 现代广告中通常不需要它们。


现场

网站应代表networking中的物理或逻辑边界。 例如,分支机构。 站点用于智能地select不同区域的域控制器的复制伙伴。 在没有定义站点的情况下,所有DC将被视为处于同一物理位置,并在网状拓扑中复制。 实际上,大多数组织都是以逻辑方式configuration为集中式的,因此应该configuration站点和服务以反映这一点。

其他应用程序也使用网站和服务。 DFS将其用于名称空间引用和复制伙伴select。 Exchange和Outlook使用它来查找“最近的”全局编录进行查询。 您join域的计算机使用它来查找“最近”的DC进行身份validation。 没有这个,你的复制和authenticationstream量就像是狂野西部。


组织单位

这些应该以反映您的组织需要授权和组策略申请的方式创build。 许多组织每个站点都有一个OU,因为他们以这种方式应用GPO – 这很愚蠢,因为您也可以从站点和服务将GPO应用到站点。 其他组织按部门或职能分开OU。 这对很多人来说都是有意义的,但是真正的OUdevise应该能够满足你的需求,而且非常灵活。 没有“一种方法”来做到这一点。

一个跨国公司可能拥有North AmericaEuropeAsiaSouth AmericaAfrica顶级OU,这样他们就可以授予基于大陆的pipe理权限。 其他组织可能拥有Human ResourcesAccountingSales等顶级组织单位,如果这样做对他们更有意义的话。 其他组织只有最低限度的政策需求,只使用“ Employee Users和“ Employee Computers ”的“平面”布局。 在这里真的没有正确的答案,这是任何满足您公司的需求。