附录 I:为 Active Directory 中受保护的帐户和组创建管理帐户

适用范围:Windows Server 2022、Windows Server 2019、Windows Server 2016、Windows Server 2012 R2、Windows Server 2012

在实现不依赖于高特权组中的永久成员身份的 Active Directory 模型时,其中一项难题是,当需要组中的临时成员身份时,必须有一种机制来填充这些组。 某些特权标识管理解决方案要求在林中的每个域的组(如 DA 或管理员)中授予软件的服务帐户永久成员身份。 不过,从技术上讲,Privileged Identity Management (PIM) 解决方案,以便在这种高度特权的上下文中运行服务。

本附录提供了可用于本机实现的或第三方 PIM 解决方案的信息,用于创建具有有限权限且可得到控制的帐户,但当需要临时提升时,可用于填充 Active Directory 中的特权组。 如果要将 PIM 作为本机解决方案来实现,则管理人员可能会使用这些帐户来执行临时组填充,如果你要通过第三方软件实现 PIM,则可以改编这些帐户以用作服务帐户。

注意

本附录中描述的过程提供了一种方法来管理 Active Directory 中的高特权组。 您可以根据需要修改这些过程,添加其他限制,或者省略此处所述的某些限制。

为 Active Directory 中受保护的帐户和组创建管理帐户

创建可用于管理特权组的成员身份的帐户,而无需授予管理帐户过多的权限和权限,这包括下面的分步说明中描述的四个常规活动:

  1. 首先,您应创建一个将管理帐户的组,因为这些帐户应由一组有限的受信任的用户进行管理。 如果你还没有 OU 结构可用于从域中的常规填充中分离特权和受保护的帐户和系统,则应该创建一个。 尽管此附录中未提供特定说明,但屏幕截图显示了此类 OU 层次结构的示例。

  2. 创建管理帐户。 应将这些帐户创建为 "常规" 用户帐户,并授予除默认情况下已授予给用户的权限以外的任何用户权限。

  3. 对管理帐户实施限制,使其仅用于创建它们的专用目的,以及控制谁可以启用和使用在第一步中创建的组 () 的帐户。

  4. 在每个域中的 AdminSDHolder 对象上配置权限,以允许管理帐户更改域中特权组的成员身份。

在生产环境中实施这些过程之前,应全面测试所有这些过程并根据环境需要对其进行修改。 还应验证所有设置是否按预期工作 (本附录) 中提供了一些测试过程,并且应测试灾难恢复方案,在此方案中,管理帐户不能用于填充受保护的组以进行恢复。 有关备份和还原 Active Directory 的详细信息,请参阅 AD DS 备份和恢复循序渐进指南

注意

通过实施此附录中所述的步骤,你将创建可管理每个域中所有受保护组的成员身份的帐户,而不仅是最高特权 Active Directory 组(如 EAs、DAs 和 BAs)。 有关 Active Directory 中的受保护组的详细信息,请参阅 附录 C: Active Directory 中的受保护帐户和组

为受保护组创建管理帐户的分步说明

创建组以启用和禁用管理帐户

管理帐户应在每次使用时重置密码,并应在需要这些帐户的活动完成后将其禁用。 尽管你可能还会考虑为这些帐户实现智能卡登录要求,但它是一个可选配置,并且这些说明假定管理帐户将使用用户名和长而复杂的密码(作为最小控件)进行配置。 在此步骤中,你将创建一个有权在管理帐户上重置密码以及启用和禁用帐户的组。

若要创建一个组以启用和禁用管理帐户,请执行以下步骤:

  1. 在将存放管理帐户的 OU 结构中,右键单击要在其中创建组的 OU,单击 " 新建 ",然后单击 " "。

    Screenshot that shows how to select the Group menu option.

  2. 在 " 新建对象-组 " 对话框中,输入组的名称。 如果计划使用此组来 "激活" 林中的所有管理帐户,请将其设为通用安全组。 如果你有单域林,或者计划在每个域中创建组,则可以创建一个全局安全组。 单击“确定”以创建组。

    Screenshot that shows where to enter the group name in the New Object - Group dialog box.

  3. 右键单击刚创建的组,单击 " 属性",然后单击 " 对象 " 选项卡。在组的 " 对象属性 " 对话框中,选择 " 防止对象被意外删除",这不仅会阻止以其他方式授权的用户删除组,而且还会将其移动到另一个 OU (除非首先取消选择该属性)。

    Screenshot that shows the Object tab.

    注意

    如果已在组的父 Ou 上配置了权限,以限制对一组有限的用户进行管理,则可能无需执行以下步骤。 此处提供了这些内容,即使你尚未对创建此组的 OU 结构实现有限的管理控制,你也可以保护组不受未经授权的用户的修改。

  4. 单击 " 成员 " 选项卡,并添加团队成员的帐户,这些帐户将负责启用管理帐户或在必要时填充受保护的组。

    Screenshot that shows the accounts on the Members tab.

  5. 如果尚未执行此操作,请在 " Active Directory 用户和计算机 " 控制台中,单击 " 查看 ",然后选择 " 高级功能"。 右键单击刚创建的组,单击 " 属性",然后单击 " 安全 " 选项卡。在 " 安全 " 选项卡上,单击 " 高级"。

    Screenshot that shows the Advanced button on the Security tab.

  6. 在 "高级安全设置 [组] " 对话框中,单击 "禁用继承"。 出现提示时,单击 " 将继承权限转换为对此对象的显式权限",然后单击 "确定" 以返回到组的 " 安全性 " 对话框。

    Screenshot that shows where to select Convert inherited permissions into explicit permissions on this object option.

  7. 在 " 安全 " 选项卡上,删除不允许访问此组的组。 例如,如果不想让经过身份验证的用户能够读取组的 "名称" 和 "常规" 属性,则可以删除该 ACE。 你还可以删除 ace,如用于帐户操作员和预 Windows 2000 服务器兼容访问的 ace。 但是,您应该保留一组最小的对象权限。 保留以下 Ace 不变:

    • SELF

    • SYSTEM

    • 域管理员

    • 企业管理员

    • 管理员

    • Windows 授权访问组 ((如果适用))

    • 企业域控制器

    尽管在 Active Directory 中允许最高特权组来管理此组,但实现这些设置的目标并不是阻止这些组的成员进行授权更改。 相反,其目的是确保在需要非常高的权限级别时,授权的更改将会成功。 出于此原因,不建议更改默认的特权组嵌套、权限和权限。 通过保持默认结构不变并在目录中清空最高权限组的成员身份,你可以创建仍按预期方式工作的更安全的环境。

    Screenshot that shows the Permissions for Authenticated Users section.

    注意

    如果尚未为创建此组的 OU 结构中的对象配置审核策略,则应将审核配置为记录更改此组。

  8. 你已完成了组的配置,该配置将用于在需要时 "查看" 管理帐户,并在其活动完成时 "签入" 帐户。

创建管理帐户

你应该至少创建一个用于管理 Active Directory 安装中特权组的成员身份的帐户,并最好创建一个用于作为备份的第二个帐户。 无论你选择在林中的单个域中创建管理帐户并为所有域的受保护组授予管理功能,还是选择在林中的每个域中实施管理帐户,这些过程都是相同的。

注意

本文档中的步骤假设您尚未实现 Active Directory 的基于角色的访问控制和特权标识管理。 因此,某些过程必须由其帐户是所述域的 Domain Admins 组成员的用户执行。

使用具有 DA 权限的帐户时,可以登录到域控制器以执行配置活动。 不需要 DA 权限的步骤可以通过登录到管理工作站的不太特权帐户来执行。 显示以较浅蓝色显示的对话框的屏幕截图表示可在域控制器上执行的活动。 以较深蓝色显示对话框的屏幕截图表示可以在具有有限特权的帐户的管理工作站上执行的活动。

若要创建管理帐户,请执行以下步骤:

  1. 使用作为域的 DA 组成员的帐户登录到域控制器。

  2. 启动 Active Directory 的用户和计算机 ,然后导航到要在其中创建管理帐户的 OU。

  3. 右键单击 OU,然后单击 " 新建 ",然后单击 " 用户"。

  4. 在 " 新建对象-用户 " 对话框中,输入所需的帐户命名信息,然后单击 " 下一步"。

    Screenshot that shows where to enter the naming information.

  5. 为用户帐户提供初始密码,清除 " 用户在下次登录时必须更改密码",选择 " 用户不能更改密码帐户已禁用",然后单击 " 下一步"。

    Screenshot that shows where to provide the initial password.

  6. 验证帐户详细信息是否正确,然后单击 " 完成"。

  7. 右键单击刚创建的用户对象,然后单击 " 属性"。

  8. 单击“帐户”选项卡 。

  9. 在 " 帐户选项 " 字段中,选择 " 敏感帐户,不能被委派 " 标志,选择 " 此帐户支持 kerberos aes 128 位加密 " 和/或 " 此帐户支持 kerberos aes 256 加密 标志",然后单击 "确定"

    Screenshot that shows the options you should select.

    注意

    由于此帐户与其他帐户类似,因此,帐户只应在安全的管理主机上使用。 对于环境中的所有安全管理主机,应考虑实施组策略设置 " 网络安全:配置 Kerberos 允许的加密类型 ",只允许安全主机实现最安全的加密类型。

    尽管为主机实现更安全的加密类型不能减少凭据被盗攻击,但安全主机的适当使用和配置也是如此。 为仅由特权帐户使用的主机设置更强的加密类型只是减少了计算机的整体攻击面。

    有关在系统和帐户上配置加密类型的详细信息,请参阅Kerberos 支持的加密类型的 Windows 配置

    仅在运行 Windows Server 2012、Windows Server 2008 R2、Windows 8 或 Windows 7 的计算机上支持这些设置。

  10. 在 " 对象 " 选项卡上,选择 " 防止对象被意外删除"。 这不仅会阻止) (删除对象,而且还会阻止将其移到 AD DS 层次结构中的不同 OU,除非用户第一次清除该复选框,并且有权更改属性。

    Screenshot that shows the Protect object from accidental deletion option on the Object tab.

  11. 单击 " 远程控制 " 选项卡。

  12. 清除 " 启用远程控制 " 标志。 如果支持人员连接到此帐户的会话以实现修补程序,则决不需要此方法。

    Screenshot that shows the cleared Enable remote control option.

    注意

    Active Directory 中的每个对象都应具有指定的 IT 所有者和指定的业务所有者,如 规划折衷中所述。 如果要跟踪 Active Directory AD DS对象的所有权 (而不是外部数据库) ,应在该对象的属性中输入适当的所有权信息。

    在这种情况下,业务所有者很有可能是 IT 部门,并且业务所有者也是 IT 所有者。 确定对象所有权的要点是,当需要更改对象时(也许从最初创建这些联系人开始,可能需要数年)时,你能够识别联系人。

  13. 单击"组织 " 选项卡。

  14. 输入对象标准中AD DS信息。

    Screenshot that shows where to enter the information required in your AD DS object standards.

  15. 单击" 拨入" 选项卡。

  16. 在" 网络访问权限"字段中 ,选择" 拒绝访问"。此帐户永远不需要通过远程连接进行连接。

    Screenshot that shows the Deny access option.

    注意

    此帐户不太可能用于登录到环境中 RODC (只读) 域控制器。 但是,如果要求帐户登录到 RODC,应将此帐户添加到拒绝的 RODC 密码复制组,以便其密码不会缓存在 RODC 上。

    尽管每次使用后应重置帐户的密码,并且应禁用帐户,但实现此设置对帐户没有有害的影响,并且对于管理员忘记重置帐户密码并禁用密码的情况可能会有所帮助。

  17. 单击“隶属于”选项卡。

  18. 单击“添加”。

  19. "选择用户、联系人、计算机"对话框中键入"拒绝 RODC 密码复制组",然后单击"检查名称"。 在对象选取器中为组名称添加下划线时,单击"确定"并验证该帐户现在是否为以下屏幕截图中显示的两个组的成员。 不要将帐户添加到任何受保护的组。

  20. 单击“确定”。

    Screenshot that shows the OK button.

  21. 单击"安全性"选项卡,然后单击"高级"。

  22. 在"高级安全设置对话框中,单击"禁用继承",将继承的权限复制为显式权限,然后单击"添加"。

    Screenshot that shows the Block Inheritence dialog box.

  23. "[帐户]的权限条目"对话框中,单击"选择主体"并添加在上一过程中创建的组。 滚动到对话框底部,然后单击"全部 清除 "以删除所有默认权限。

    Screenshot that shows the Clear all button.

  24. 滚动到"权限条目 "对话框 的顶部。 确保"类型"下拉列表设置为"允许",在"适用于"下拉列表中,选择"仅此对象"。

  25. 在"权限"字段中选择"读取所有属性"、"读取权限"和"重置密码"。

    Screenshot that shows the Read all properties, Read permissions, and Reset password options.

  26. 在"属性"字段中,选择"读取 userAccountControl"和"写入 userAccountControl"。

  27. "高级安全保护"对话框中再次单击"确定设置确定"。

    Screenshot that shows the OK button in the Advanced Security Settings dialog box.

    注意

    userAccountControl属性控制多个帐户配置选项。 向 属性授予写入权限时,不能仅授予更改某些配置选项的权限。

  28. "安全性"选项卡的"组或用户名"字段中,删除不应允许访问或管理帐户的任何组。 不要删除任何已配置了 Deny ACE 的组,例如"Everyone"组和"自计算帐户" (创建帐户期间启用了"用户无法更改密码"标志时设置的 ACE。 此外,不要删除刚添加的组、SYSTEM 帐户或组,例如 EA、DA、BA 或 Windows访问组。

    Screenshot that shows the Group or user names section on the Security tab.

  29. 单击"高级"并验证"高级安全设置对话框是否类似于以下屏幕截图。

  30. 再次 单击"确定 " 和"确定"以关闭帐户的属性对话框。

    Screenshot that shows the Advanced Security Settings dialog box.

  31. 第一个管理帐户的设置现已完成。 你将在稍后的过程中测试帐户。

创建其他管理帐户

可以通过重复上述步骤、复制刚刚创建的帐户或创建脚本来创建具有所需配置设置的帐户来创建其他管理帐户。 但请注意,如果复制刚刚创建的帐户,则许多自定义设置和 ACL 不会复制到新帐户,并且必须重复大多数配置步骤。

可以改为创建一个组,将填充和取消填充受保护组所需的权限委托给该组,但需要保护该组以及你放在该组中的帐户。 由于目录中应只有极少数帐户被授予管理受保护组成员身份的权限,因此创建单个帐户可能是最简单的方法。

无论选择如何创建管理帐户放置到的组,都应确保每个帐户都按前面所述进行保护。 还应考虑实施 GPO 限制,类似于附录 D:保护 Active Directory Built-In管理员帐户中所述的限制

审核管理帐户

应该对帐户配置审核,以至少记录对帐户的所有写入。 这样,你不仅能够识别在授权使用期间成功启用帐户和重置其密码,还能够识别未经授权的用户操纵帐户的尝试。 应在安全信息和事件监视 (SIEM) 系统 ((如果适用) )中捕获帐户上的失败写入,并触发警报,向负责调查潜在泄漏的人员提供通知。

SIEM 解决方案从涉及的安全源(例如 (事件日志、应用程序数据、网络流、反恶意软件产品和入侵检测源) )获取事件信息,整理数据,并尝试进行智能视图和主动操作。 有许多商业 SIEM 解决方案,许多企业创建专用实现。 设计良好且实施得当的 SIEM 可以显著增强安全监视和事件响应功能。 但是,各解决方案的功能和准确性差异很大。 SIEM 超出了本文的范围,但任何 SIEM 实施者都应考虑所包含的特定事件建议。

有关域控制器的建议审核配置设置详细信息,请参阅监视 Active Directory 的入侵标志。 监视 Active Directory 中的入侵信号中提供了域控制器 特定的配置设置

启用管理帐户以修改受保护组的成员身份

在此过程中,你将对域的 AdminSDHolder 对象配置权限,以允许新创建的管理帐户修改域中受保护组的成员身份。 此过程不能通过图形用户界面 (GUI) 。

如附录 C:Active Directory中的受保护帐户和组中讨论,当 SDProp 任务运行时,域的 AdminSDHolder 对象上的 ACL 实际上会"复制"到受保护的对象。 受保护的组和帐户不会从 AdminSDHolder 对象继承其权限;显式设置其权限,以匹配 AdminSDHolder 对象上的权限。 因此,在修改对 AdminSDHolder 对象的权限时,必须针对适合所面向受保护对象类型的属性修改这些权限。

在这种情况下,你将授予新创建的管理帐户,以允许它们读取和写入组对象上的 members 属性。 但是,AdminSDHolder 对象不是组对象,并且组属性不会在图形 ACL 编辑器中公开。 因此,你将通过 Dsacls 命令行实用工具实现权限更改。 若要向 (组) 帐户授予修改受保护组的成员身份的权限,请执行以下步骤:

  1. 使用已成为域中 DA 组的成员的用户帐户的凭据登录到域控制器,最好是具有 PDC Emulator (PDCE) 角色的域控制器。

    Screenshot that shows where to enter the credentials for the user account.

  2. 右键单击"命令提示符",然后单击"以管理员"运行,打开提升的命令提示符

    Screenshot that shows the Run as administrator menu option.

  3. 当系统提示批准提升时,单击"是"。

    Screenshot that shows where to select Yes to approve the elevation.

    注意

    有关在 Windows 中的 UAC (提升和用户帐户控制) ,请参阅 TechNet 网站上UAC进程和交互。

  4. 在命令提示符下,键入 (以替代特定于域的信息) Dsacls [域中 AdminSDHolder 对象的可分辨名称] /G [管理帐户 UPN]:RPWP;成员

    Screenshot that shows the command prompt.

    上一 (不区分大小写的命令) 如下所示:

    • Dsacls 设置或显示目录对象上的 AES

    • CN=AdminSDHolder,CN=System,DC=TailSpinToys,DC=msft 标识要修改的对象

    • /G 指示正在配置授予 ACE

    • PIM001@tailspintoys.msft 是 AES (UPN) 的用户主体名称

    • RPWP 授予读取属性和写入属性权限

    • 成员是属性的名称 (属性) 将设置权限的属性名称

    有关 Dsacls 使用详细信息,请键入 Dsacls,在命令提示符下没有任何参数。

    如果为域创建了多个管理帐户,应针对每个帐户运行 Dsacls 命令。 在 AdminSDHolder 对象上完成 ACL 配置后,应强制运行 SDProp,或等到其计划运行完成。 有关强制运行 SDProp 的信息,请参阅附录 C:Active Directory中的受保护帐户和组中的"手动运行 SDProp"。

    运行 SDProp 后,可以验证对 AdminSDHolder 对象所做的更改是否应用于域中的受保护组。 由于前面所述的原因,无法通过查看 AdminSDHolder 对象上的 ACL 来验证这一点,但可以通过查看受保护组的 ACL 来验证权限是否应用。

  5. Active Directory 用户和计算机中,验证是否已启用"高级功能"。 为此,请单击"查看",找到"域管理员"组,右键单击该组,然后单击"属性"。

  6. 单击"安全"选项卡,然后单击"高级"以打开"设置管理员高级安全组"对话框。

    Screenshot that shows how to open the Advanced Security Settings for Domain Admins dialog box.

  7. 管理帐户选择"允许 ACE",然后单击"编辑"。 验证帐户是否仅被授予对 DA组的"读取成员"和"写入成员"权限,然后单击"确定"。

  8. "高级安全组设置单击"确定",然后再次单击"确定"以关闭 DA 组的属性对话框。

    Screenshot that shows how to close the property dialog box.

  9. 可以针对域中的其他受保护组重复上述步骤;所有受保护组的权限应相同。 现已完成此域中受保护组的管理帐户的创建和配置。

    注意

    有权在 Active Directory 中写入组成员身份的任何帐户也可以将自身添加到组中。 此行为是设计使的,不能禁用。 出于此原因,应始终在不使用管理帐户时保持禁用状态,并且应在禁用帐户和使用帐户时密切监视这些帐户。

验证组和帐户配置设置

现在,你已创建并配置了管理帐户,这些管理帐户可以修改域 ((包括特权最大的 EA、DA 和 BA 组) )中受保护组的成员身份,应验证帐户及其管理组已正确创建。 验证包括以下常规任务:

  1. 测试可启用和禁用管理帐户的组,以验证该组的成员是否可启用和禁用帐户并重置其密码,但不能对管理帐户执行其他管理活动。

  2. 测试管理帐户以验证它们能否向域中的受保护组添加和删除成员,但不能更改受保护帐户和组的其他任何属性。

测试将启用和禁用管理帐户的组
  1. 若要测试启用管理帐户并重置其密码,请登录到安全管理工作站,该帐户是附录 I:为 Active Directory中的受保护帐户和组创建管理帐户中创建的组的成员。

    Screenshot that shows how to log in to the account that is a member of the group you created.

  2. 打开Active Directory 用户和计算机,右键单击管理帐户,然后单击"启用帐户"。

    Screenshot that highlights the Enable Account menu option.

  3. 应显示一个对话框,确认帐户已启用。

    Screenshot that shows that the account has been enabled.

  4. 接下来,重置管理帐户的密码。 为此,请再次右键单击帐户,然后单击"重置密码"。

    Screenshot that highlights the Reset Password menu option.

  5. 在"新建密码"和"确认密码"字段中键入帐户的新密码,然后单击"确定"。

    Screenshot that shows where to type the new password.

  6. 应会出现一个对话框,确认帐户的密码已重置。

    Screenshot that shows the message confirming that the password for the account has been reset.

  7. 现在尝试修改管理帐户的其他属性。 右键单击帐户,然后单击" 属性",然后单击" 远程控制" 选项卡。

  8. 选择"启用远程控制",然后单击"应用"。 操作应失败 ,应显示 "拒绝访问"错误消息。

    Screenshot that shows the Access Denied error.

  9. 单击 帐户 的"帐户"选项卡,并尝试更改帐户的名称、登录小时数或登录工作站。 所有操作都应失败,并且 userAccountControl 属性未控制的帐户选项应灰显且不可修改。

    Screenshot that shows the Account tab.

  10. 尝试将管理组添加到受保护组(如 DA 组)。 单击" 确定"时,应会显示一条消息,告知你无权修改组。

    Screenshot that shows the message informing you that you do not have permission to modify the group.

  11. 根据要求执行其他测试,验证除了 userAccountControl 设置和密码重置之外,无法在管理帐户上配置任何内容。

    注意

    userAccountControl属性控制多个帐户配置选项。 向 属性授予写入权限时,不能仅授予更改某些配置选项的权限。

测试管理帐户

启用一个或多个可以更改受保护组成员身份的帐户后,可以测试这些帐户以确保它们可以修改受保护的组成员身份,但不能对受保护的帐户和组执行其他修改。

  1. 作为第一个管理帐户登录到安全管理主机。

    Screenshot that shows how to log in to a secure administrative host.

  2. 启动 Active Directory 用户和计算机 并找到 "域管理员"组

  3. 右键单击"域管理员"组,然后单击"属性"。

    Screenshot that highlights the Properties menu option.

  4. 在" 域管理员属性"中,单击" 成员" 选项卡,然后单击 "添加 "。 输入将获得临时域管理员权限的帐户的名称,然后单击"检查名称"。 当帐户名称带有下划线时,单击" 确定 "以返回到" 成员" 选项卡。

    Screenshot that shows where to add the name of the account that will be given temporary Domain Admins privileges.

  5. 在"管理员属性"对话框的"成员"选项卡上,单击"应用"。 单击 "应用"后,该帐户应保持为 DA 组的成员,并且不应收到任何错误消息。

    Screenshot that shows the Members tab in the Domain Admins Properties dialog box.

  6. 单击"域管理员属性"对话框中的"托管方"选项卡,并验证你无法在任何字段中输入文本,并且所有按钮均灰显。

    Screenshot that shows the Managed By tab.

  7. 单击" 管理员属性"对话框中 "常规"选项卡,并验证你无法修改有关该选项卡的任何信息。

    creating management accounts

  8. 根据需要对其他受保护的组重复这些步骤。 完成后,使用一个帐户登录到安全管理主机,该帐户是创建以启用和禁用管理帐户的组的成员。 然后重置刚测试的管理帐户的密码,并禁用该帐户。 你已完成管理帐户和将负责启用和禁用帐户的组的设置。