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


144

这是有关Active Directory域服务(AD DS)的规范问题

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

Active Directory的组织方式:林,子域,树,站点或OU


我发现自己几乎每天都在解释一些我认为是常识的知识。希望该问题可以作为最基本的Active Directory问题的规范问题和答案。如果您认为可以改善该问题的答案,请进行编辑。


7
我不想看起来像个混蛋,但我认为也有必要链接到AD的非技术性描述,如果您遇到需要以较少技术性细节进行描述的情况:serverfault .com / q / 18339/7200
Evan Anderson

对于这个问题可能存在的联系:serverfault.com/questions/568606/... - serverfault.com/questions/472562/... - serverfault.com/questions/21780/... - serverfault.com/questions/72878/...只是仅举几例。@MDMarra可能是一种规范的做法
TheCleaner 2014年

Answers:


153

什么是Active Directory?

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

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

什么是域,什么是森林?

森林是安全边界。除非每个单独的林的管理员在它们之间建立信任,否则单独的林中的对象无法彼此交互。例如,一个的企业管理员帐户domain1.com(通常是林中最特权的帐户)在名为的第二个林中根本没有任何权限domain2.com,即使这些林存在于同一LAN中,除非存在信任关系, 。

如果您有多个不相交的业务部门或需要单独的安全边界,则需要多个目录林。

域是管理边界。域是森林的一部分。林中的第一个域称为林根域。在许多中小型组织(甚至一些大型组织)中,您只会在单个林中找到单个域。林根域定义了林的默认名称空间。例如,如果新林中的第一个域名为domain1.com,那么这就是林根域。如果您对子域有业务需求,例如-在芝加哥的分支机构,则可以命名子域chi。子域的FQDNchi.domain1.com。您可以看到子域的名称是林根域名称的前缀。通常是这样的。您可以在同一林中拥有不相交的名称空间,但这是蠕虫在不同时间的完全独立的罐头。

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

我可以为自己的域名命名,对吗?

并不是的。dcpromo.exe,用于将服务器升级为DC的工具不是傻瓜式的。它的确会使您在命名时做出错误的决定,因此,如果不确定,请注意本节。(编辑:dcpromo在Server 2012中已弃用。使用Install-ADDSForestPowerShell cmdlet或从服务器管理器安装AD DS。)

首先,不要使用诸如.local,.lan,.corp或任何其他废话之类的虚构TLD。这些TLD 保留。ICANN现在正在出售TLD,因此您mycompany.corp今天使用的您实际上可能属于明天的某人。如果您拥有mycompany.com,那么明智的选择是使用类似于internal.mycompany.comad.mycompany.com作为内部AD名称的方式。如果您将其mycompany.com用作外部可解析的网站,则也应避免将其用作内部AD名称,因为最终将使用裂脑DNS。

域控制器和全局目录

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

当用户尝试使用其AD凭据登录到加入AD的计算机时,盐析和散列的用户名和密码组合将同时发送给正在登录的用户帐户和计算机帐户的DC。是的,电脑也登录。这很重要,因为如果AD中的计算机帐户发生某些事情,例如有人重置或删除了该帐户,您可能会收到一条错误消息,指出计算机与域之间不存在信任关系。即使您的网络凭据很好,也不再信任计算机登录域。

域控制器可用性问题

我听到“我有一个主域控制器(PDC),并且想安装一个备份域控制器(BDC)”的声音,这是我想相信的。PDC和BDC的概念在Windows NT4中消失了。当您仍然有NT4 DC时,PDC的最后一个堡垒是在Windows 2000过渡混合模式AD中。基本上,除非您支持从未升级的15年以上的安装,否则您实际上没有PDC或BDC,只有两个域控制器。

多个DC能够同时回答来自不同用户和计算机的身份验证请求。如果其中一个失败,那么其他人将继续提供身份验证服务,而不必像您在NT4天内所做的那样进行一个“主要”认证。最佳做法是每个域至少有两个DC。这些DC都应该保存GC的副本,并且都应该是DNS服务器,同时也保存您所在域的Active Directory集成DNS区域的副本。

FSMO角色

“因此,如果没有PDC,为什么只有一个DC可以具有PDC角色?”

我听到很多。有一个PDC模拟器角色。它不同于PDC。实际上,有5个灵活的单主机操作角色(FSMO)。这些也称为操作主机角色。这两个术语可以互换。它们是什么,它们做什么?好问题!这五个角色及其功能是:

域命名主机 -每个目录林只有一个域命名主机。域命名主机确保将新域添加到林中时该域是唯一的。如果担任此角色的服务器处于脱机状态,则您将无法更改AD名称空间,其中包括添加新的子域之类的内容。

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

基础结构主机 -每个域只有一个基础结构主机。如果您的林中只有一个域,那么您实际上就不必担心它。如果您有多个目录林,则除非该目录林中的每个DC都是GC,否则请确保该角色不由同时也是GC持有者的服务器担任。基础结构主机负责确保正确处理跨域引用。如果将一个域中的用户添加到另一个域中的组,则所涉及域的基础结构主机应确保正确处理了该域。如果该角色在全局目录中,则将无法正常运行。

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

PDC仿真器 -最后,我们来探讨其中最广为人知的角色,即PDC仿真器角色。每个域有一个PDC模拟器。如果身份验证尝试失败,则将其转发到PDC仿真器。如果一个DC上的密码已更新但尚未复制到其他DC上,则PDC仿真器将充当“抢劫犯”的角色。PDC仿真器还是控制整个域中时间同步的服务器。所有其他DC从PDC仿真器同步其时间。所有客户端都从登录的DC同步时间。重要的是,所有内容之间的间隔必须保持在5分钟之内,否则Kerberos就会中断,并且当这种情况发生时,所有人都在哭泣。

要记住的重要一点是,运行这些角色的服务器并不是一成不变的。转移这些角色通常是微不足道的,因此,虽然某些DC的作用要比其他DC稍大,但如果它们在短时间内掉线,则通常一切正常。如果他们长时间不在家,很容易透明地转移角色。它比NT4 PDC / BDC日子好得多,所以请不要再使用这些旧名字来呼叫您的DC。:)

那么,嗯...如果DC彼此独立运行,如何共享信息?

复制当然。默认情况下,属于同一站点中相同域的DC将以15秒的间隔相互复制其数据。这样可以确保所有内容都是相对最新的。

有一些“紧急”事件会触发立即复制。这些事件是:帐户因过多的失败登录而被锁定,对域密码或锁定策略进行了更改,LSA机密已更改,DC的计算机帐户上的密码已更改或RID主角色已转移到新的DC。这些事件中的任何一个都会触发立即复制事件。

密码更改介于紧急和非紧急之间,并且可以唯一处理。如果更改了用户的密码,DC01并且用户尝试DC02在进行复制之前登录到要进行身份验证的计算机,您会希望此操作失败,对吗?幸运的是,这没有发生。假定这里还有第三个DC DC03担当PDC仿真器角色。当DC01使用用户的新密码更新时,该更改将立即复制到DC03。如果您的身份验证尝试DC02失败,DC02则将该身份验证尝试转发到DC03,以验证它的确正确,并且允许登录。

让我们谈谈DNS

DNS对于正常运行的AD至关重要。Microsoft的官方说法是,如果设置正确,则可以使用任何DNS服务器。如果您尝试使用BIND来托管广告区域,那就太高了。说真的 坚持使用AD Integrated DNS区域,如有必要,请对其他区域使用条件转发器或全局转发器。应该将所有客户端都配置为使用AD DNS服务器,因此在此处具有冗余性很重要。如果您有两个DC,请让它们都运行DNS并将客户端配置为将它们都用于名称解析。

另外,您将要确保,如果您有多个DC,则不要将它们首先列出来进行DNS解析。这可能导致它们位于“复制岛”上的情况,在该岛上,它们与其余的AD复制拓扑断开了连接,无法恢复。如果您有两台服务器DC01 - 10.1.1.1DC02 - 10.1.1.2,则它们的DNS服务器列表应配置如下:

服务器: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允许集中用户和计算机管理,以及集中资源访问和使用。想象一下一个办公室有50个用户的情况。如果希望每个用户都有自己的登录名到每台计算机,则必须在每台PC上配置50个本地用户帐户。使用AD,您只需创建一次用户帐户,默认情况下就可以登录域中的任何PC。如果要加强安全性,则必须执行50次。有点恶梦吧?还要想象您有一个文件共享,而您只希望其中一半人可以访问。如果您不使用AD,则需要手动在服务器上复制其用户名和密码以提供隐秘的访问权限,或者 d必须创建一个共享帐户,并为每个用户提供用户名和密码。一种方式意味着您知道(并且必须不断更新)用户的密码。另一种方式意味着您没有审核记录。不好吧?

设置广告后,您还可以使用组策略。组策略是一组链接到OU的对象,这些OU定义了这些OU中用户和/或计算机的设置。例如,如果要使500台实验室PC的“关闭”菜单上没有“关机”,则可以在组策略中的一个设置中执行此操作。只需创建一次组策略对象,然后将其链接到正确的一个或多个OU,而不用花费数小时或数天的时间手动配置正确的注册表项,而无需再考虑它。可以配置数百个GPO,组策略的灵活性是Microsoft在企业市场中如此占主导地位的主要原因之一。


20
做得好,马克。很棒的质量检查。
EEAA 2012年

12
@TheCleaner同意,但是Stack Exchange的部分任务是成为特定主题所有有用信息的中央存储库。因此,尽管Wikipedia上的信息通常是非常正确和相关的,但它并不能吸引人们,“ here”应该是与系统管理相关的一切的一站式商店。
MDMarra 2012年

6
@RyanBolger确实如此,但此问答适用于新手。可支持性是一个大问题,如果您正在运行BIND(或其他任何东西),Microsoft绝对不会帮助您解决可能与DNS相关的AD问题。这是一个高级配置,不建议需要询问“什么是AD以及它如何工作”的人使用。最重要的是,DNS是一个低负载角色。如果您已经拥有DC,那么很难不让DC在其上运行DNS,而要为其余DNS基础结构提供全球转发器。
MDMarra 2012年

8
@RyanBolger-同意MDMarra。如果Fred已经拥有一个运行良好且功能复杂的内部DNS基础结构,那么Fred不会在SF上发帖询问“那么,我要安装此Active Directory东西-请告诉我所有相关信息?”
mfinni 2012年

2
您的回答只是提醒我在我继承的网络的域控制器上检查DNS服务器搜索顺序...是的,他们指的是自己!
myron-semack 2014年

20

注意:此答案已从另一个问题合并到此问题中,该问题询问了林,子域,树,站点和OU之间的差异。最初并不是将其写为对此特定问题的解答。


森林

您需要在需要安全边界时创建新的林。例如,您可能希望使用AD管理外围网络(DMZ),但出于安全原因,您不希望内部AD在外围网络中可用。在这种情况下,您需要为该安全区域创建一个新的林。如果您有多个彼此不信任的实体,例如,一个空壳公司,其中包含独立运作的各个业务,那么您也可能需要这种分离。在这种情况下,您希望每个实体都有自己的林。


子域

真的,您不再需要这些。何时需要子域的例子很少。遗留的原因是由于不同的密码策略要求,但是它不再有效,因为自Server 2008以来已有细粒度的密码策略。如果您的区域具有难以置信的较差的网络连接,并且您确实想要一个子域,则实际上只需要一个子域以大大减少复制流量-具有卫星WAN连接的游轮就是一个很好的例子。在这种情况下,每艘游轮可能是其自己的子域,以便相对独立,同时仍能够利用与来自同一公司的其他域一样位于同一林中的好处。


这是一个奇怪的球。当您要维护单个林的管理优势但在新的DNS名称空间中具有域时,可以使用新的树。例如,corp.example.com可能是林的根,但是您可以ad.mdmarra.com使用新树在同一林中。子域的相同规则和建议在此处适用-谨慎使用。在现代广告中通常不需要它们。


现场

站点应代表您网络中的物理或逻辑边界。例如,分支机构。站点用于为不同区域中的域控制器智能地选择复制伙伴。如果不定义站点,则所有DC都将被视为位于相同的物理位置并在网状拓扑中复制。实际上,大多数组织在逻辑上是在中心辐射型中配置的,因此应配置站点和服务以反映这一点。

其他应用程序也使用站点和服务。DFS将其用于名称空间引用和复制伙伴选择。Exchange和Outlook使用它来查找要查询的“最近”全局目录。加入域的计算机使用它来定位要验证的“最近” DC。没有这个,您的复制和身份验证流量就像狂野的西部。


组织单元

创建这些文件的方式应反映您组织对授权委派和组策略应用程序的需求。许多组织每个站点都有一个OU,因为它们以这种方式应用GPO-这很愚蠢,因为您也可以从“站点和服务”将GPO应用于站点。其他组织则按部门或职能将OU分开。这对许多人来说都是有意义的,但实际上OU设计应该可以满足您的需求并且相当灵活。没有“一种方法”可以做到这一点。

一家跨国公司可以有顶级的组织单位North AmericaEuropeAsiaSouth AmericaAfrica使他们能够根据委托大陆上的管理权限。其他组织可能拥有的顶级组织单位Human ResourcesAccountingSales,等如果让他们更有意义。其他组织对策略的需求最少,并且使用just Employee Users和的“扁平”布局Employee Computers。这里确实没有正确的答案,这满足了您公司的需求。


1
有人非常了解他的广告。.+1
NickW 2014年

3
@NickW AD问题是我的72.9k代表中的72k可能来自:D
MDMarra 2014年

2
这段时间过后,仍然是一篇不错的Technet文章,可供阅读:technet.microsoft.com/zh-cn/library/bb727030.aspx-某些部分已被取代,但绝对值得阅读。
TheCleaner 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.