Microsoft Entra Connect:配置 AD DS 连接器帐户权限
内部版本 1.1.880.0(发布于 2018 年 8 月)中引入了名为 ADSyncConfig.psm1
的 PowerShell 模块,其中包括有助于为 Microsoft Entra Connect 部署配置正确 Active Directory 权限的 cmdlet 集合。
概述
对于选择要在 Microsoft Entra Connect 中启用的每个功能,可以使用以下 PowerShell cmdlet 设置 AD DS Connector 帐户的 Active Directory 权限。 为了防止出现任何问题,每当要使用自定义域帐户安装 Microsoft Entra Connect 以连接林时,都应提前准备 Active Directory 权限。 部署 Microsoft Entra Connect 后,此 ADSyncConfig 模块还可用于配置权限。
对于 Microsoft Entra Connect 快速安装,将在 Active Directory 中创建一个具有所有必需权限的自动生成的帐户 (MSOL_nnnnnnnnnn),因此除非你已阻止对组织单位或要同步到 Azure AD 的特定 Active Directory 对象的权限继承,否则无需使用此 ADSyncConfig 模块。
权限摘要
下表提供了 AD 对象所需权限的摘要:
Feature | 权限 |
---|---|
ms DS ConsistencyGuid 功能 | 针对 ms-DS-ConsistencyGuid 属性的读写权限,详见设计概念 - 使用 ms-DS-ConsistencyGuid 作为 sourceAnchor。 |
密码哈希同步 | |
Exchange 混合部署 | 针对用户、组和联系人的属性的读写权限,详见 Exchange 混合写回。 |
Exchange 邮件公用文件夹 | 对 Exchange 邮件公用文件夹中所述的公用文件夹属性的读取权限。 |
密码写回 | 针对用户属性的读写权限,详见密码管理入门。 |
设备写回 | 针对设备对象和容器的读写权限,详见设备写回。 |
组写回 | 读取、创建、更新和删除同步的 Office 365 组的组对象。 |
使用 ADSyncConfig PowerShell 模块
ADSyncConfig 模块需要适用于 AD DS 的远程服务器管理工具 (RSAT),因为它依赖于 AD DS PowerShell 模块和工具。 若要安装适用于 AD DS 的 RSAT,请使用“以管理员身份运行”打开 Windows PowerShell 窗口并执行:
Install-WindowsFeature RSAT-AD-Tools
注意
也可以将文件 C:\Program Files\Microsoft Entra Connect\AdSyncConfig\ADSyncConfig.psm1 复制到已安装了“适用于 AD DS 的 RSAT”的域控制器,并从该控制器使用此 PowerShell 模块。 注意,某些 cmdlet 只能在托管 Microsoft Entra Connect 的计算机上运行。
若要开始使用 ADSyncConfig,则需要在 Windows PowerShell 窗口中加载该模块:
Import-Module "C:\Program Files\Azure Active Directory Connect\AdSyncConfig\AdSyncConfig.psm1"
若要检查此模块中包含的所有 cmdlet,可以键入:
Get-Command -Module AdSyncConfig
每个 cmdlet 都具有相同的参数来输入 AD DS 连接器帐户和 AdminSDHolder 开关。 若要指定 AD DS 连接器帐户,可以提供帐户名称和域,或仅提供帐户可分辨名称 (DN),
例如:
Set-ADSyncPasswordHashSyncPermissions -ADConnectorAccountName <ADAccountName> -ADConnectorAccountDomain <ADDomainName>
或;
Set-ADSyncPasswordHashSyncPermissions -ADConnectorAccountDN <ADAccountDN>
务必将 <ADAccountName>
、<ADDomainName>
和 <ADAccountDN>
替换为适合你的环境的值。
如果想修改 AdminSDHolder 容器的权限,请使用开关 -IncludeAdminSdHolders
。 请注意,不推荐这样做。
默认情况下,所有设定的权限 cmdlet 都将尝试在林中每个域的根上设置 AD DS 权限,这意味着运行 PowerShell 会话的用户需要林中每个域的域管理员权限。 由于此要求,建议从林根中使用企业管理员。 如果 Microsoft Entra Connect 部署具有多个 AD DS 连接器,则需要在具有 AD DS 连接器的每个林上运行相同的 cmdlet。
还可以使用参数 -ADobjectDN
(后跟要设置权限的目标对象的 DN)来设置特定 OU 或 AD DS 对象的权限。 使用目标 ADobjectDN 时,cmdlet 将仅对此对象设置权限,而不对域根或 AdminSDHolder 容器设置权限。 若所拥有的特定 OU 或 AD DS 对象已禁用权限继承,此参数非常有用(请参阅“查找已禁用权限继承的 AD DS 对象”)
这些常用参数的例外情况是用于对 AD DS 连接器帐户本身设置权限的 Set-ADSyncRestrictedPermissions
cmdlet 以及 Set-ADSyncPasswordHashSyncPermissions
cmdlet,因为密码哈希同步所需的权限仅在域根中进行了设置,所以此 cmdlet 不包含 -ObjectDN
或 -IncludeAdminSdHolders
参数。
确定 AD DS 连接器帐户
如果已安装 Microsoft Entra Connect 并且想要检查 Microsoft Entra Connect 当前正在使用的 AD DS 连接器帐户,则可以执行 cmdlet:
Get-ADSyncADConnectorAccount
查找已禁用权限继承的 AD DS 对象
如果想要检查是否存在任何已禁用权限继承的 AD DS 对象,可以运行:
Get-ADSyncObjectsWithInheritanceDisabled -SearchBase '<DistinguishedName>'
默认情况下,此 cmdlet 将仅查找已禁用继承的 OU,但你可以在 -ObjectClass
参数中指定其他 AD DS 对象类或使用“*”查找所有对象类,如下所示:
Get-ADSyncObjectsWithInheritanceDisabled -SearchBase '<DistinguishedName>' -ObjectClass *
查看对象的 AD DS 权限
可以使用以下 cmdlet 来查看当前对 Active Directory 对象设置的权限列表,只需提供其 DistinguishedName 即可:
Show-ADSyncADObjectPermissions -ADobjectDN '<DistinguishedName>'
配置 AD DS 连接器帐户权限
配置基础只读权限
若要在不使用任何 Microsoft Entra Connect 功能时为 AD DS 连接器帐户设置基础只读权限,请运行:
Set-ADSyncBasicReadPermissions -ADConnectorAccountName <String> -ADConnectorAccountDomain <String> [-IncludeAdminSdHolders] [<CommonParameters>]
或;
Set-ADSyncBasicReadPermissions -ADConnectorAccountDN <String> [-ADobjectDN <String>] [<CommonParameters>]
此 cmdlet 将设置以下权限:
类型 | 名称 | 访问 | 应用于 |
---|---|---|---|
Allow | AD DS 连接器帐户 | 读取所有属性 | 后代设备对象 |
Allow | AD DS 连接器帐户 | 读取所有属性 | 后代 InetOrgPerson 对象 |
Allow | AD DS 连接器帐户 | 读取所有属性 | 后代计算机对象 |
Allow | AD DS 连接器帐户 | 读取所有属性 | 后代 foreignSecurityPrincipal 对象 |
Allow | AD DS 连接器帐户 | 读取所有属性 | 后代组对象 |
Allow | AD DS 连接器帐户 | 读取所有属性 | 后代用户对象 |
Allow | AD DS 连接器帐户 | 读取所有属性 | 后代联系人对象 |
Allow | AD DS 连接器帐户 | 复制目录更改 | 仅限此对象(域根) |
配置 MS-DS-Consistency-Guid 权限
若要在使用 ms-Ds-Consistency-Guid 属性作为源定位点(也就是“让 Azure 为我管理源定位点”选项)时为 AD DS 连接器帐户设置权限,请运行:
Set-ADSyncMsDsConsistencyGuidPermissions -ADConnectorAccountName <String> -ADConnectorAccountDomain <String> [-IncludeAdminSdHolders] [<CommonParameters>]
或;
Set-ADSyncMsDsConsistencyGuidPermissions -ADConnectorAccountDN <String> [-ADobjectDN <String>] [<CommonParameters>]
此 cmdlet 将设置以下权限:
类型 | 名称 | 访问 | 应用于 |
---|---|---|---|
Allow | AD DS 连接器帐户 | 读取/写入属性 | 后代用户对象 |
密码哈希同步的权限
若要在使用密码哈希同步时为 AD DS 连接器帐户设置权限,请运行:
Set-ADSyncPasswordHashSyncPermissions -ADConnectorAccountName <String> -ADConnectorAccountDomain <String> [<CommonParameters>]
或;
Set-ADSyncPasswordHashSyncPermissions -ADConnectorAccountDN <String> [<CommonParameters>]
此 cmdlet 将设置以下权限:
类型 | 名称 | 访问 | 应用于 |
---|---|---|---|
Allow | AD DS 连接器帐户 | 复制目录更改 | 仅限此对象(域根) |
Allow | AD DS 连接器帐户 | 复制所有目录更改 | 仅限此对象(域根) |
密码写回的权限
若要在使用密码写回时为 AD DS 连接器帐户设置权限,请运行:
Set-ADSyncPasswordWritebackPermissions -ADConnectorAccountName <String> -ADConnectorAccountDomain <String> [-IncludeAdminSdHolders] [<CommonParameters>]
或;
Set-ADSyncPasswordWritebackPermissions -ADConnectorAccountDN <String> [-ADobjectDN <String>] [<CommonParameters>]
此 cmdlet 将设置以下权限:
类型 | 名称 | 访问 | 应用于 |
---|---|---|---|
Allow | AD DS 连接器帐户 | 重置密码 | 后代用户对象 |
Allow | AD DS 连接器帐户 | 写入 lockoutTime 属性 | 后代用户对象 |
Allow | AD DS 连接器帐户 | 写入 pwdLastSet 属性 | 后代用户对象 |
组写回的权限
若要在使用组写回时为 AD DS 连接器帐户设置权限,请运行:
Set-ADSyncUnifiedGroupWritebackPermissions -ADConnectorAccountName <String> -ADConnectorAccountDomain <String> [-IncludeAdminSdHolders] [<CommonParameters>]
或;
Set-ADSyncUnifiedGroupWritebackPermissions -ADConnectorAccountDN <String> [-ADobjectDN <String>] [<CommonParameters>]
此 cmdlet 将设置以下权限:
类型 | 名称 | 访问 | 应用于 |
---|---|---|---|
Allow | AD DS 连接器帐户 | 一般读取/写入 | 对象类型组和子对象的所有属性 |
Allow | AD DS 连接器帐户 | 创建/删除子对象 | 对象类型组和子对象的所有属性 |
Allow | AD DS 连接器帐户 | 删除/删除树对象 | 对象类型组和子对象的所有属性 |
Exchange 混合部署的权限
若要在使用 Exchange 混合部署时为 AD DS 连接器帐户设置权限,请运行:
Set-ADSyncExchangeHybridPermissions -ADConnectorAccountName <String> -ADConnectorAccountDomain <String> [-IncludeAdminSdHolders] [<CommonParameters>]
或;
Set-ADSyncExchangeHybridPermissions -ADConnectorAccountDN <String> [-ADobjectDN <String>] [<CommonParameters>]
此 cmdlet 将设置以下权限:
类型 | 名称 | 访问 | 应用于 |
---|---|---|---|
Allow | AD DS 连接器帐户 | 读取/写入所有用户属性 | 后代用户对象 |
Allow | AD DS 连接器帐户 | 读取/写入所有用户属性 | 后代 InetOrgPerson 对象 |
Allow | AD DS 连接器帐户 | 读取/写入所有用户属性 | 后代组对象 |
Allow | AD DS 连接器帐户 | 读取/写入所有用户属性 | 后代联系人对象 |
Exchange 邮件公用文件夹的权限
若要在使用 Exchange 邮件公用文件夹功能时为 AD DS 连接器帐户设置权限,请运行:
Set-ADSyncExchangeMailPublicFolderPermissions -ADConnectorAccountName <String> -ADConnectorAccountDomain <String> [-IncludeAdminSdHolders] [<CommonParameters>]
或;
Set-ADSyncExchangeMailPublicFolderPermissions -ADConnectorAccountDN <String> [-ADobjectDN <String>] [<CommonParameters>]
此 cmdlet 将设置以下权限:
类型 | 名称 | 访问 | 应用于 |
---|---|---|---|
Allow | AD DS 连接器帐户 | 读取所有属性 | 后代 PublicFolder 对象 |
限制 AD DS 连接器帐户的权限
此 PowerShell 脚本将限制以参数提供的 AD 连接器帐户的权限。 限制权限操作包括以下步骤:
在指定对象上禁用继承
删除特定对象上的所有 ACE(特定于 SELF 的 ACE 除外),因为对于 SELF,我们希望默认权限保持不变。
-ADConnectorAccountDN 参数是需要限制权限的 AD 帐户。 这通常是在 AD DS 连接器中配置的 MSOL_nnnnnnnnnnnn 域帐户(请参阅“确定 AD DS 连接器帐户”)。 若要指定具有必要权限以限制目标 AD 对象的 Active Directory 权限的管理员帐户,必须使用 -Credential 参数(此帐户必须不同于 ADConnectorAccountDN 帐户)。 这通常为企业或域管理员。
Set-ADSyncRestrictedPermissions [-ADConnectorAccountDN] <String> [-Credential] <PSCredential> [-DisableCredentialValidation] [-WhatIf] [-Confirm] [<CommonParameters>]
例如:
$credential = Get-Credential
Set-ADSyncRestrictedPermissions -ADConnectorAccountDN 'CN=ADConnectorAccount,OU=Users,DC=Contoso,DC=com' -Credential $credential
此 cmdlet 将设置以下权限:
类型 | 名称 | 访问 | 应用于 |
---|---|---|---|
允许 | SYSTEM | 完全控制 | 此对象 |
允许 | 企业管理员 | 完全控制 | 此对象 |
允许 | 域管理员 | 完全控制 | 此对象 |
允许 | 管理员 | 完全控制 | 此对象 |
允许 | 企业域控制器 | 列出内容 | 此对象 |
允许 | 企业域控制器 | 读取所有属性 | 此对象 |
允许 | 企业域控制器 | 读取权限 | 此对象 |
允许 | 经过身份验证的用户 | 列出内容 | 此对象 |
允许 | 经过身份验证的用户 | 读取所有属性 | 此对象 |
允许 | 经过身份验证的用户 | 读取权限 | 此对象 |