本文介绍 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
如果有此错误,表明:
缺少所需的权限或配置不正确
用户的访问权限不足
查看本文档,确保为执行域加入的用户或组分配所有提到的必要权限,以防止此问题。
