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


这是一个 典型问题 关于Active Directory域服务(AD DS)。

什么是Active Directory?它做什么以及如何工作?

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


我发现自己几乎每天都会解释一些我认为常识的东西。希望这个问题可以作为大多数基本Active Directory问题的规范问题和答案。如果您认为可以改善这个问题的答案,请编辑。


136
2018-06-27 03:47




我不希望看起来像是在回复,但我认为值得链接到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


答案:


什么是Active Directory?

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

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

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

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

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

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

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

我可以随心所欲地命名我的域名,对吗?

并不是的。 dcpromo.exe,处理服务器升级到DC的工具不是白痴。它确实让你在命名时做出错误的决定,所以如果你不确定,请注意本节。 (编辑: dcpromo已弃用 在Server 2012中。使用 Install-ADDSForest PowerShell cmdlet或从服务器管理器安装AD DS。)

首先,不要使用像.local,.lan,.corp或任何其他垃圾这样的组合TLD。那些顶级域名是  保留。 ICANN现在正在销售TLD,所以您的 mycompany.corp 你今天使用的,明天可能真的属于某人。如果你拥有 mycompany.com那么聪明的事就是使用类似的东西 internal.mycompany.com 要么 ad.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的副本,并且都应该是包含域的Active Directory集成DNS区域副本的DNS服务器。

FSMO角色

“那么,如果没有PDC,为什么只有一个DC可以拥有PDC角色呢?”

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

域名命名大师  - 每个林只有一个域命名主机。域命名主机确保将新域添加到林中时它是唯一的。如果具有此角色的服务器处于脱机状态,您将无法更改AD命名空间,其中包括添加新子域等内容。

架构大师  - 森林中只有一个Schema Operations Master。它负责更新Active Directory架构。需要此操作的任务(例如,为作为DC的新版Windows Server或Exchange的安装准备AD)需要进行架构修改。这些修改必须从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区域,那么您很高兴。认真。坚持使用AD集成DNS区域,并在必要时使用条件或全局转发器用于其他区域。您的客户端都应配置为使用您的AD DNS服务器,因此在此处拥有冗余非常重要。如果您有两个DC,请让它们都运行DNS并配置您的客户端以使用它们进行名称解析。

此外,您将要确保如果您有多个DC,则他们不会首先列出自己的DNS解析。这可能会导致他们处于某种状态 “复制岛” 它们与AD复制拓扑的其余部分断开连接,无法恢复。如果你有两台服务器 DC01 - 10.1.1.1 和 DC02 - 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,则需要在服务器上手动复制其用户名和密码以提供无缝访问权限,或者您必须创建共享帐户并为每个用户提供用户名和密码。一种方式意味着您知道(并且必须不断更新)用户的密码。另一种方式意味着您没有审计跟踪。不好,对吧?

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


146
2018-06-27 03:47



干得好,马克。真棒QA。 - EEAA
@TheCleaner同意,但Stack Exchange的一部分任务是成为关于特定主题的所有有用信息的中央存储库。因此,虽然维基百科上的信息通常非常正确且相关,但它不会驱动这里的人,而“这里”应该是与系统管理相关的一站式服务。 - MDMarra
@RyanBolger这一切都是真的,但这个Q&A面向新手。可支持性是一个大问题,微软绝对会这样做 不 如果您正在运行BIND(或其他任何东西),可以帮助您解决可能与DNS相关的AD问题。这是一个高级配置,不建议那些需要提问“什么是AD以及它如何工作”的人。最重要的是,DNS是一个低负载角色。如果您已经拥有DC,那么很难说不在它们上运行DNS并且拥有一个全局转发器到您的DNS基础架构的其余部分。 - MDMarra
@RyanBolger - 同意MDMarra。如果弗雷德已经拥有一个运行良好且复杂的内部DNS基础设施,那么弗雷德就不会在SF上发帖询问“那么,我即将安装这个Active Directory的东西 - 请告诉我所有关于它的事情?” - mfinni
您的回答只是提醒我检查我继承的网络的域控制器上的DNS服务器搜索顺序...是的,他们指的是自己! - myron-semack


注意: 这个答案从一个不同的问题合并到这个问题中,该问题询问了森林,子域,树,站点和OU之间的差异。这最初并不是作为这个具体问题的答案而写的。


森林

您需要在需要安全边界时创建新林。例如,您可能希望使用AD管理外围网络(DMZ),但出于安全原因,您不希望外围网络中的内部AD可用。在这种情况下,您可能希望为该安全区域创建新的林。如果您有多个不相互信任的实体,您可能还需要这种分离 - 例如,包含独立运营的单个业务的shell公司。在这种情况下,您希望每个实体都拥有自己的林。


子域名

真的,你不再需要这些了。当你想要一个子域时,很少有很好的例子。遗留原因是由于不同的密码策略要求,但这已不再有效,因为自Server 2008以来可以使用细粒度密码策略。如果您的区域具有令人难以置信的糟糕网络连接且您想要的话,那么您真的只需要一个子域大幅度减少复制流量 - 具有卫星WAN连接的游轮就是一个很好的例子。在这种情况下,每艘游轮可以是其自己的子域,以便相对独立,同时仍然能够利用与来自同一公司的其他域在同一森林中的好处。


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


现场

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

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


组织单元

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

一家跨国公司可能拥有顶级的OU North AmericaEuropeAsiaSouth AmericaAfrica 这样他们就可以委托基于大陆的管理权限。其他组织可能拥有顶级的OU Human ResourcesAccountingSales等等,如果这对他们更有意义。其他组织只有最小的政策需求,并且只使用“平面”布局 Employee Users 和 Employee Computers。这里真的没有正确的答案,这是满足贵公司需求的。


17
2018-01-28 17:06



有人非常了解他的广告。+ 1 - NickW
@NickW AD问题是我的72.9k代表中的72k可能来自:D - MDMarra
在这段时间之后仍然是一篇很棒的Technet文章: technet.microsoft.com/en-us/library/bb727030.aspx  - 有些部分已被取代,但绝对值得一读。 - TheCleaner