Windows Server 中的 Active Directory 域加入权限

本文介绍 Active Directory(AD)中成功加入域作所需的权限。 域加入是将计算机添加到 AD 域的过程,可实现集中式管理和身份验证。 域加入所需的权限取决于是 创建新计算机帐户 还是 重用现有帐户。 正确配置这些权限对于安全性和作效率至关重要,因为配置不当的权限可能会导致域加入失败或带来安全风险。 以下部分提供了给定方案的指南,包括建议的做法和故障排除提示。

方案 1:创建计算机帐户的权限

如果用户在没有预配计算机帐户的情况下将自己的计算机加入域,则此方案适用。 在域加入期间,如果 AD 中不存在具有要加入名称的计算机帐户,系统会使用提供的用户凭据执行 Ldap_Add() 作创建该帐户。 若要了解详细信息,请参阅 NetJoinDomain 函数(lmjoin.h)。 加入计算机的用户必须要么拥有将工作站添加到域的用户权限(此权限由SeMachineAccountPrivilegeMs-Ds-Machine-Account-Quota管理),要么具备在创建帐户的组织单元(OU)或容器中创建计算机对象的权限。 由于 “将工作站添加到域”中所述的漏洞,Microsoft不建议使用此选项。

如果 AD 中已存在计算机帐户,并且不同的用户需要使用该帐户将计算机加入域,此过程通常涉及预预配计算机帐户的委派管理员(或服务帐户)。 此设置允许其他用户通过重用现有帐户来执行域加入。 假设 Admin01 创建计算机帐户, Admin02 执行加入。 在此示例中,必须将Admin01委派给创建计算机帐户权限,并使用在相关 OU 或容器上的Create ChildACTRL_DS_CREATE_CHILD来实现。

重要

谨慎委托,并确保适当的安全保护和监视已到位。 有关详细信息,请参阅KB5008383 - Active Directory 权限更新(CVE-2021-42291)。

方案 2:在加入域期间重用计算机帐户

更常见的情况是将设备加入一个已经预创建计算机账户的域。 例如,Admin01 在contoso.com具有OU=Workstations,DC=Contoso,DC=com“创建计算机帐户”权限。

Admin01 在工作站 OU 中创建名为 NewPC1 的计算机帐户, Admin02 需要在生成过程中将此计算机加入域。 在需要进行故障排除时,例如 Admin03 需要取消加入并重新加入计算机,预先存在的帐户会简化此过程。 当 AD 中存在名为 NewPC1$ 的帐户时,将使用处理联接的用户的凭据执行 Ldap_modify() 作,例如

执行 脱机域加入 过程(djoin /requestODJ)时,该联接不需要在 AD 中的计算机帐户上有任何权限要求。 建议使用此方法,因为它可最大程度地减少所需的 AD 特权并减少潜在问题。

重复使用现有计算机帐户进行域加入时,可能会根据需要在计算机对象上更新以下属性:

SamAccountName - 如果名称正在更改

DnsHostName - 如果尚未设置

ServicePrincipalName - 如果尚未设置

UserAccountControl - 如果帐户已禁用,则启用

UnicodePwd

若要在域加入期间成功重用现有计算机帐户,请确保分配以下权限:

受信任的所有权: 计算机帐户所有者(Admin01)必须是管理员组的成员,无论是直接还是通过嵌套组成员身份。 或者,执行域加入的用户(Admin01)必须是帐户所有者。 如果安装了 KB5020276 - Netjoin:域加入强化更改,则必须在 ComputerAccountReuseAllowlist 组策略对象(GPO)中,将 Admin01 的所有者或包含 Admin01 的组列为受信任所有者,如 KB 中所述。

例如,预创建的计算机帐户 的安全描述符 如下所示:

Security Descriptor:SD Revision: 1

SD Control: 0x8c04

SE_DACL_PRESENT

SE_DACL_AUTO_INHERITED

SE_SACL_AUTO_INHERITED

SE_SELF_RELATIVE

Owner: MyDomain\Admin1 [S-1-5-21-832151497-3956308952-1069003339-1103]

Group: MyDomain\Domain Users [S-1-5-21-832151497-3956308952-1069003339-513]

修改权限: 若要使用现有帐户成功将计算机加入域, Admin02 必须至少具有对计算机对象的以下权限:

读取

读取所有属性

内容列表

允许进行身份验证

更改密码

重置密码

已验证写入 DNS 主机名

验证写入到服务主体名称

写入账户限制(用于更新 UserAccountControl)

此外,如果需要重命名计算机,Admin02 还需要以下权限:

写入计算机名 (Windows 2000 前)

输入 displayname

撰写描述

权限配置

建议在 Active Directory 用户和计算机中初始创建帐户期间,为 Admin02 授予重用计算机帐户所需的权限。 这可确保从一开始就正确设置所有必需的权限,从而简化将来的域加入作。 但在大多数企业方案中,这种方法并不可行。 若要了解详细信息,请参阅 目录服务访问权限。

如果需要手动或通过自动化分配权限,请确保授予以下最低权限:

阅读

Ace[1]

Ace Type: 0x0 - ACCESS_ALLOWED_ACE_TYPE

Ace Size: 36 bytes

Ace Flags: 0x0

Ace Mask: 0x00020014

READ_CONTROL

ACTRL_DS_LIST

ACTRL_DS_READ_PROP

Ace Sid: MyDomain\Admin02 [S-1-5-21-832151497-3956308952-1069003339-1104]

允许进行身份验证

Ace[2]

Ace Type: 0x5 - ACCESS_ALLOWED_OBJECT_ACE_TYPE

Ace Size: 56 bytes

Ace Flags: 0x0

Object Ace Mask: 0x00000100

ACTRL_DS_CONTROL_ACCESS

Object Ace Flags: 0x1

ACE_OBJECT_TYPE_PRESENT

Object Ace Type: Allowed to Authenticate - 68b1d179-0d15-4d4f-ab71-46152e79a7bc

Object Ace Sid: MyDomain\Admin02 [S-1-5-21-832151497-3956308952-1069003339-1104]

已验证写入 DNS 主机名

Ace[3]

Ace Type: 0x5 - ACCESS_ALLOWED_OBJECT_ACE_TYPE

Ace Size: 56 bytes

Ace Flags: 0x0

Object Ace Mask: 0x00000008

ACTRL_DS_SELF

Object Ace Flags: 0x1

ACE_OBJECT_TYPE_PRESENT

Object Ace Type: Validated write to DNS host name - 72e39547-7b18-11d1-adef-00c04fd8d5cd

Object Ace Sid: MyDomain\Admin02 [S-1-5-21-832151497-3956308952-1069003339-1104]

验证写入服务主体名称

Ace[4]

Ace Type: 0x5 - ACCESS_ALLOWED_OBJECT_ACE_TYPE

Ace Size: 56 bytes

Ace Flags: 0x0

Object Ace Mask: 0x00000008

ACTRL_DS_SELF

Object Ace Flags: 0x1

ACE_OBJECT_TYPE_PRESENT

Object Ace Type: servicePrincipalName - f3a64788-5306-11d1-a9c5-0000f80367c1

Object Ace Sid: MyDomain\Admin02 [S-1-5-21-832151497-3956308952-1069003339-1104]

设置帐户限制

Ace[5]

Ace Type: 0x5 - ACCESS_ALLOWED_OBJECT_ACE_TYPE

Ace Size: 56 bytes

Ace Flags: 0x0

Object Ace Mask: 0x00000020

ACTRL_DS_WRITE_PROP

Object Ace Flags: 0x1

ACE_OBJECT_TYPE_PRESENT

Object Ace Type: Account Restrictions - 4c164200-20c0-11d0-a768-00aa006e0529

Object Ace Sid: MyDomain\Admin02 [S-1-5-21-832151497-3956308952-1069003339-1104]

重置密码

Ace[6]

Ace Type: 0x5 - ACCESS_ALLOWED_OBJECT_ACE_TYPE

Ace Size: 56 bytes

Ace Flags: 0x0

Object Ace Mask: 0x00000100

ACTRL_DS_CONTROL_ACCESS

Object Ace Flags: 0x1

ACE_OBJECT_TYPE_PRESENT

Object Ace Type: Reset Password - 00299570-246d-11d0-a768-00aa006e0529

Object Ace Sid: MyDomain\Admin02 [S-1-5-21-832151497-3956308952-1069003339-1104]

更改密码

Ace[7]

Ace Type: 0x5 - ACCESS_ALLOWED_OBJECT_ACE_TYPE

Ace Size: 56 bytes

Ace Flags: 0x0

Object Ace Mask: 0x00000100

ACTRL_DS_CONTROL_ACCESS

Object Ace Flags: 0x1

ACE_OBJECT_TYPE_PRESENT

Object Ace Type: Change Password - ab721a53-1e2f-11d0-9819-00aa0040529b

Object Ace Sid: MyDomain\Admin02 [S-1-5-21-832151497-3956308952-1069003339-1104]

对于 “重命名计算机帐户 ”权限,请确保授予以下内容:

写入说明

Ace[1]

Ace Type: 0x5 - ACCESS_ALLOWED_OBJECT_ACE_TYPE

Ace Size: 72 bytes

Ace Flags: 0x0

Object Ace Mask: 0x00000020

ACTRL_DS_WRITE_PROP

Object Ace Flags: 0x3

ACE_OBJECT_TYPE_PRESENT

ACE_INHERITED_OBJECT_TYPE_PRESENT

Object Ace Type: description - bf967950-0de6-11d0-a285-00aa003049e2

Inherited object type: computer - bf967a86-0de6-11d0-a285-00aa003049e2

Object Ace Sid: MyDomain\Admin02 [S-1-5-21-832151497-3956308952-1069003339-1104]

写入显示名称

Ace[2]

Ace Type: 0x5 - ACCESS_ALLOWED_OBJECT_ACE_TYPE

Ace Size: 72 bytes

Ace Flags: 0x0

Object Ace Mask: 0x00000020

ACTRL_DS_WRITE_PROP

Object Ace Flags: 0x3

ACE_OBJECT_TYPE_PRESENT

ACE_INHERITED_OBJECT_TYPE_PRESENT

Object Ace Type: displayName - bf967953-0de6-11d0-a285-00aa003049e2

Inherited object type: computer - bf967a86-0de6-11d0-a285-00aa003049e2

Object Ace Sid: MyDomain\Admin02 [S-1-5-21-832151497-3956308952-1069003339-1104]

写入 samAccountName

Ace[3]

Ace Type: 0x5 - ACCESS_ALLOWED_OBJECT_ACE_TYPE

Ace Size: 72 bytes

Ace Flags: 0x0

Object Ace Mask: 0x00000020

ACTRL_DS_WRITE_PROP

Object Ace Flags: 0x3

ACE_OBJECT_TYPE_PRESENT

ACE_INHERITED_OBJECT_TYPE_PRESENT

Object Ace Type: sAMAccountName - 3e0abfd0-126a-11d0-a060-00aa006c33ed

Inherited object type: computer - bf967a86-0de6-11d0-a285-00aa003049e2

Object Ace Sid: MyDomain\Admin02 [S-1-5-21-832151497-3956308952-1069003339-1104]

故障排除权限

如果未配置所需的权限,在安装 2022 年 10 月 11 日或更高版本的 Windows 累积更新后,重复使用计算机帐户的域加入作可能会失败。 以下错误消息通常指示失败:

Error 0xaac (2732): NERR_AccountReuseBlockedByPolicy: "An account with the same name exists in Active Directory. Re-using the account was blocked by security policy."

导航到 C:\Windows\debug\netsetup.log 并检查是否存在以下错误:

unicodePwd = Account exists, resetting password:

NetpModifyComputerObjectInDs: Attribute values to set:

userAccountControl = 0x1000

DnsHostName = NewPC1.MyDomain.com

ServicePrincipalName = HOST/NewPC1.MyDomain.com RestrictedKrbHost/NewPC1.MyDomain.com HOST/NEWPC1 RestrictedKrbHost/NEWPC1

03/10/2023 14:20:29:369

unicodePwd =

NetpMapGetLdapExtendedError: Parsed [0x2098] from server extended error string: 00002098: SecErr: DSID-031514A0, problem 4003 (INSUFF_ACCESS_RIGHTS), data 0

NetpModifyComputerObjectInDs: ldap_modify_s failed: 0x32 0x5

如果有此错误,表明:

缺少所需的权限或配置不正确

用户的访问权限不足

查看本文档,确保为执行域加入的用户或组分配所有提到的必要权限,以防止此问题。