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

[玩转系统] Active Directory 中基于时间的(临时)组成员身份

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

Active Directory 中基于时间的(临时)组成员身份


Windows Server 2016 中的 Active Directory 版本引入了一项有趣的功能,允许您临时将用户添加到 AD 安全组。此功能称为临时组成员身份(基于时间)。当您需要根据 AD 安全组成员身份临时授予用户某些权限时,可以使用此功能。经过指定时间后,用户将自动从安全组中删除(无需管理员干预)。

为了使用临时组成员资格,您需要在 Active Directory 林中启用特权访问管理功能。与 AD 回收站(允许您恢复已删除的对象)一样,启用 PAM 后就无法禁用它。

确保您的 AD 林正在 Windows Server 2016 林功能级别(或更高级别)运行:

(Get-ADForest).ForestMode

[玩转系统] Active Directory 中基于时间的(临时)组成员身份

使用 AD PowerShell 模块中的命令检查当前林中是否启用了特权访问管理功能:

Get-ADOptionalFeature -filter "name -eq 'privileged access management feature'"

[玩转系统] Active Directory 中基于时间的(临时)组成员身份

我们需要 EnableScopes 参数的值。在我们的示例中它是空的。这意味着该林未启用特权访问管理功能。

要激活它,请使用 Enable-ADOptionalFeature 命令,并将您的林名称指定为参数之一:

Enable-ADOptionalFeature 'Privileged Access Management Feature' -Scope ForestOrConfigurationSet -Target contoso.com

[玩转系统] Active Directory 中基于时间的(临时)组成员身份

如果出现错误“

Enable-ADOptionalFeature: The SMO role ownership could not be verified because its directory partition has not replicated successfully with at least one replication partner

运行该命令时出现“,请检查域控制器和 AD 复制的状态以及 FSMO 角色所有者的可用性。手动强制 AD 复制。

运行命令

Get-ADOptionalFeature -filter "name -eq 'privileged access management feature'" | select EnabledScopes

并检查 EnableScopes 字段是否不为空。

要将用户临时添加到 AD 组,您需要使用 PowerShell cmdlet。从 ADUC 图形管理单元临时添加到安全组 (

dsa.msc

) 不支持。

启用 PAM 后,您可以尝试使用 Add-ADGroupMember cmdlet 的特殊参数 MemberTimeToLive 将用户添加到 AD 组。使用New-TimeSpan cmdlet 可以方便地设置时间间隔(TTL)。假设您要将用户 test1 添加到 Domain Admins 组,持续 15 分钟:

$ttl = New-TimeSpan -Minutes 5
Add-ADGroupMember -Identity "Domain Admins" -Members test1 -MemberTimeToLive $ttl

不建议使用临时组成员身份来提供对特权域组(企业管理员、域管理员等)的临时访问权限。通常,临时组成员身份用于授予对资源组的访问权限。为了授予管理权限,您必须使用 Active Directory 委派或 PowerShell Just Enough Administration (JEA)。

您可以使用 Get-ADGroup cmdlet 检查用户成为组成员的时间:

Get-ADGroup 'Domain Admins' -Property member -ShowMemberTimeToLive

[玩转系统] Active Directory 中基于时间的(临时)组成员身份

在命令结果中,您可以看到类似的条目

<TTL=187,CN=test1,CN=Users,DC=a-d,DC=loc>

对于小组成员。 TTL 值以秒为单位显示。这意味着该用户已被临时添加到 Domain Admins 组中。 187秒后自动退群

用户 Kerberos 票证也会过期。这是因为 KDC 为在 AD 组中具有临时成员资格的用户颁发了一个生命周期等于 TTL 值最小值的票证。

您可以使用以下命令检查下一个 Kerberos 票证续订时间:

klist

下次更新TGT票据的时间显示在更新时间参数中。

之前,我们展示了如何使用 klist 刷新 AD 组成员身份而无需注销。

[玩转系统] Active Directory 中基于时间的(临时)组成员身份

使用混合方案并通过 Azure AD Connect 从本地 Active Directory 到 Azure AD 进行组同步时请注意。此配置应考虑云同步间隔设置。

另外,在 AD 中(具有 Windows2003Fores 林功能级别或更高版本),您可以创建临时 AD 组。对于此类组,使用dynamicObject 类。此类组的自动删除是由 Active Directory 垃圾收集进程执行的。

例如,创建一个临时组,一个月后自动删除(

2592000 = 31 * 24 * 60 * 60

),使用以下 PowerShell 脚本:

$OU = [adsi]"LDAP://OU=Groups,OU=Munich,OU=DE,DC=a-d,DC=loc"
$Group = $OU.Create("group","cn=MUN-FS01_Public_tmp")
$Group.PutEx(2,"objectClass",@("dynamicObject","group"))
$Group.Put("entryTTL","2678400")
$Group.SetInfo()

在 ADUC 控制台中打开组属性。请注意 entryTTL 属性。它指示在多少秒内该 AD 组将被删除。

[玩转系统] Active Directory 中基于时间的(临时)组成员身份

早些时候,要实现临时 AD 组成员身份,您必须使用动态对象、不同的脚本和计划任务,或者相当复杂的系统(Microsoft Forefront Identity Manager 等)。现在,在 Windows Server 2016/2019 中,这个方便的功能开箱即用。

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

取消回复欢迎 发表评论:

关灯