当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 在 Active Directory 中委派管理权限

作者:精品下载站 日期:2024-12-14 23:20:37 浏览:14 分类:玩电脑

在 Active Directory 中委派管理权限


在本文中,我们将了解如何在 Active Directory 域中委派管理权限。委派允许您向普通域(非管理员)用户授予执行某些 AD 管理任务的权限,而无需使他们成为特权域组的成员,例如域管理员、帐户操作员等。例如,您可以使用委派向某个 AD 安全组(例如帮助台)授予将用户添加到组、在 AD 中创建新用户以及重置帐户密码的权限。

了解 Active Directory 委派权限

要在 AD 中委派权限,请使用 Active Directory 用户和计算机控制台 (DSA.msc) 中的控制委派向导

您可以在 AD 中以相当细粒度的级别委派管理权限。您可以授予一个组在 OU 中重置密码的权限,授予另一组创建和删除用户帐户的权限,授予第三组创建和更改组成员身份的权限。您可以在嵌套 OU 上配置权限继承。可以在 Active Directory 中按以下级别委派权限:

  • 广告网站;

  • 整个域;

  • Active Directory 中的特定组织单位 (OU);

  • 特定的 AD 对象。

Active Directory 中委派控制的最佳实践:

  • 不建议将权限直接委派(分配)给特定用户帐户。相反,在 AD 中创建一个新的安全组,向其中添加用户,并为该组委派 OU 的权限。如果您想向其他用户授予相同的权限,只需将其添加到该安全组即可;

  • 避免使用拒绝权限,因为它们优先于允许的权限;

  • 定期审核域中的委派权限(可以使用 PowerShell 创建包含每个 OU 的当前权限列表的报告);

  • 不要授予任何人使用管理员帐户管理 OU 的权限。否则,任何支持人员都可以重置域管理员密码。所有特权用户和组都应放置在不受委派规则约束的单独 OU 中。

在 AD 中委托密码重置和解锁帐户权限

假设您的任务是向 HelpDesk 组授予重置密码和解锁域中用户帐户的权限。让我们使用 PowerShell 在 AD 中创建一个新的安全组:

New-ADGroup "HelpDesk" -path 'OU=Groups,OU=Paris,OU=Fr,dc=a-d,DC=com' -GroupScope Global

将您想要的用户添加到该组:

Add-AdGroupMember -Identity HelpDesk -Members rdroz, jdupont

运行 Active Directory 用户和计算机 mmc 管理单元 (

dsa.msc

),右键单击包含用户的 OU(在我们的示例中为“OU=Users,OU=Paris,OU=Fr,dc=a-d,DC=com”),然后选择委派控制菜单项

[玩转系统] 在 Active Directory 中委派管理权限

选择您想要授予管理权限的组。

[玩转系统] 在 Active Directory 中委派管理权限

选择一组预配置的权限(委派以下常见任务):

  • 创建、删除和管理用户帐户;

  • 重置用户密码并在下次登录时强制更改密码;

  • 读取所有用户信息;

  • 创建、删除和管理群组;

  • 修改群组的成员资格;

  • 管理组策略链接;

  • 生成政策结果集(规划);

  • 生成策略结果集(日志记录);

  • 创建、删除和管理 inetOrgPerson 帐户;

  • 重置 inetOrgPerson 密码并在下次登录时强制更改密码;

  • 读取所有 inetOrgPerson 信息。

或者创建要委托的自定义任务。我选择第二个选项。

[玩转系统] 在 Active Directory 中委派管理权限

选择要授予管理权限的 AD 对象的类型。由于我们想要授予对用户帐户的控制权,因此选择用户对象项。如果您想要授予在 OU 中创建或删除用户的权限,请选择选项创建/删除此文件夹中的选定对象。在我们的示例中,我们不授予此类特权。

[玩转系统] 在 Active Directory 中委派管理权限

在权限列表中,选择您想要委派的权限。在我们的示例中,我们将选择解锁用户帐户的权限(读取锁定时间写入锁定时间)和重置密码(重置密码)。

为了使帮助台团队能够识别域中帐户锁定的根源,您必须授予他们搜索域控制器上的安全日志的权限。

[玩转系统] 在 Active Directory 中委派管理权限

单击“下一步”,并在最后一个屏幕上确认所选权限的委派。

[玩转系统] 在 Active Directory 中委派管理权限

现在,在 HelpDesk 组的用户帐户下,尝试使用 PowerShell 从目标 OU 重置用户的密码:

Set-ADAccountPassword gchaufourier -Reset -NewPassword (ConvertTo-SecureString -AsPlainText “P@ssdr0w1” -Force -Verbose) -PassThru

密码应该成功重置(如果它符合域密码策略)。

现在尝试使用 New-ADUser cmdlet 在此 OU 中创建用户:

New-ADUser -Name gmicheaux -Path 'OU=Users,OU=Paris,OU=FR,DC=a-d,DC=com' -Enabled $true

由于您尚未授予创建新 AD 帐户的权限,因此应该会出现访问被拒绝的错误。

您可以使用域控制器安全日志来审核您已委派管理权限的用户的操作。例如,您可以跟踪谁在域中重置了用户密码、谁在 AD 中创建了用户帐户,或者跟踪敏感 AD 组中的更改。

委派计算机加入 AD 域的权限

默认情况下,任何域用户最多可以将 10 台计算机加入域。添加第11台计算机时,会出现错误:

Your computer could not be joined to the domain. You have exceeded the maximum number of computer accounts you are allowed to create in this domain. Contact your system administrator to have this limit reset or increased.

[玩转系统] 在 Active Directory 中委派管理权限

您可以通过增加 ms-DS-MachineAccountQuota 属性的值在域范围内更改此限制。或者(更正确、更安全)将计算机加入某个 OU 的权限委托给特定用户组(帮助台)。为此,请委派创建计算机对象类型对象的权限。在控制委派向导中,选择在此文件夹中创建所选对象

[玩转系统] 在 Active Directory 中委派管理权限

在“权限”部分中选择创建所有子对象

[玩转系统] 在 Active Directory 中委派管理权限

如果要委派在 AD 中的组织单位之间移动对象的权限,则必须授予以下权限:删除用户对象、写入可分辨名称、写入名称 (**)、创建用户(或计算机)对象。

如何查看和删除 Active Directory 中的委派权限?

可以将任意数量的委派规则分配给 AD 中的 OU。您可以在 ADUC 控制台的 OU 属性中获取组列表以及委派给它们的权限。转到安全选项卡。

其中包含已授予此容器权限的 AD 主题的列表。您可以在高级选项卡上查看授予的权限列表。如您所见,HelpDesk 组可以重置密码。

[玩转系统] 在 Active Directory 中委派管理权限

您可以撤销之前通过委派分配的特定管理权限组。找到您委派权限的组的名称,然后单击删除

此外,在安全 -> 高级选项卡上,您可以手动将委派权限分配给不同的安全组。

如何使用 PowerShell 在 Active Directory 中委派权限?

您可以获取委派给 OU 的权限列表或使用 PowerShell 更改当前权限。这

Get-ACL

Set-ACL

cmdlet 用于查看和更改 Active Directory 中的权限(相同的 PowerShell cmdlet 用于管理文件和文件夹的 NTFS 权限)。

以下简单脚本将列出委托给 AD 中特定组织单位的所有非标准权限:

# get the OU
$OUs = Get-ADOrganizationalUnit -Filter 'DistinguishedName -eq "OU=Users,OU=Paris,DC=a-d,DC=com"'| Select-Object -ExpandProperty DistinguishedName
$schemaIDGUID = @{}
$ErrorActionPreference = 'SilentlyContinue'
Get-ADObject -SearchBase (Get-ADRootDSE).schemaNamingContext -LDAPFilter '(schemaIDGUID=*)' -Properties name, schemaIDGUID |
ForEach-Object {$schemaIDGUID.add([System.GUID]$_.schemaIDGUID,$_.name)}
Get-ADObject -SearchBase "CN=Extended-Rights,$((Get-ADRootDSE).configurationNamingContext)" -LDAPFilter '(objectClass=controlAccessRight)' -Properties name, rightsGUID |
ForEach-Object {$schemaIDGUID.add([System.GUID]$_.rightsGUID,$_.name)}
$ErrorActionPreference = 'Continue'
ForEach ($OU in $OUs) {
$report += Get-Acl -Path "AD:$OU" |
Select-Object -ExpandProperty Access |
Select-Object @{name='organizationalUnit';expression={$OU}}, `
@{name='objectTypeName';expression={if ($_.objectType.ToString() -eq '00000000-0000-0000-0000-000000000000') {'All'} Else {$schemaIDGUID.Item($_.objectType)}}}, `
@{name='inheritedObjectTypeName';expression={$schemaIDGUID.Item($_.inheritedObjectType)}}, `
*
}
# report with assigned OU permissions

您可以使用图形 Out-GridView cmdlet 获取委派权限报告:

$report| where {($_.IdentityReference -notlike "*BUILTIN*") -and ($_.IdentityReference -notlike "*NT AUTHORITY*") }| Out-GridView

或者将权限列表导出到 CSV 文件,以便在 Excel 中进一步分析(您可以从 PowerShell 脚本将数据直接写入 Excel 文件):

$report | Export-Csv -Path "C:\reports\AD_OU_Permissions.csv" -NoTypeInformation

生成的报告显示 HelpDesk 组已被委派在 OU 中重置用户密码 (ObjectTypeName=User-Force-Change-Password) 的权限。

[玩转系统] 在 Active Directory 中委派管理权限

您可以使用 dsacls 工具将权限委派给 OU。例如:

dsacls "ou=users,ou=paris,dc=a-d,dc=com" /I:S /G "WOSHUB\HELPDESK:CA;Reset Password;user" "WOSHUB\HELPDESK:WP;pwdLastSet;user" "WOSHUB\HELPDESK:WP;lockoutTime;user

您还可以使用 PowerShell 向组织单位容器分配权限(在此示例中,委派了重置密码的权限):

$ou = "AD:\OU=users,OU=Paris,DC=a-d,DC=com"
$group = Get-ADGroup helpdesk
$sid = new-object System.Security.Principal.SecurityIdentifier $group.SID
$ResetPassword = [GUID]"00299570-246d-11d0-a768-00aa006e0529"
$UserObjectType = "bf967aba-0de6-11d0-a285-00aa003049e2"
$ACL = get-acl $OU
$RuleResetPassword = New-Object System.DirectoryServices.ActiveDirectoryAccessRule ($sid, "ExtendedRight", "Allow", $ResetPassword, "Descendents", $UserObjectType)
$ACL.AddAccessRule($RuleResetPassword)
Set-Acl -Path $OU -AclObject $ACL

同样,您可以使用 PowerShell 将其他权限委托给 AD 组织容器。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯