La versión de Active Directory en Windows Server 2016 presenta una característica interesante que le permite agregar temporalmente un usuario a un grupo de seguridad de AD. Esta característica se llama Pertenencia temporal a grupos (basada en el tiempo). Esta función se puede utilizar cuando necesite otorgar temporalmente a un usuario alguna autoridad basada en la pertenencia al grupo de seguridad de AD. Una vez transcurrido el tiempo especificado, el usuario se eliminará automáticamente del grupo de seguridad (sin la intervención del administrador).
Para utilizar la Pertenencia a grupo temporal, debe habilitar la Función de gestión de acceso privilegiado en su bosque de Active Directory. Al igual que con la Papelera de reciclaje de AD (que le permite recuperar objetos eliminados), no puede deshabilitar PAM después de haberlo habilitado.
Asegúrese de que su bosque de AD se esté ejecutando en el nivel de función de bosque de Windows Server 2016 (o superior):
(Get-ADForest).ForestMode
Compruebe si la función de administración de acceso privilegiado está habilitada en el bosque actual mediante el comando del módulo AD PowerShell:
Get-ADOptionalFeature -filter "name -eq 'privileged access management feature'"
Necesitamos el valor de EnableScopes parámetro. Está vacío en nuestro ejemplo. Significa que la función de administración de acceso privilegiado no está habilitada para este bosque.
Para activarlo, use Enable-ADOptionalFeature comando y especifique el nombre de su bosque como uno de los argumentos:
Enable-ADOptionalFeature 'Privileged Access Management Feature' -Scope ForestOrConfigurationSet -Target contoso.com
Enable-ADOptionalFeature: The SMO role ownership could not be verified because its directory partition has not replicated successfully with at least one replication partner
”Aparece al ejecutar el comando, verifique el estado de los controladores de dominio y la replicación de AD, y la disponibilidad de los propietarios de roles FSMO. Forzar manualmente la replicación de AD. Ejecuta el comando Get-ADOptionalFeature -filter "name -eq 'privileged access management feature'" | select EnabledScopes
y compruebe que el campo EnableScopes no esté vacío.
Para agregar temporalmente un usuario a un grupo de AD, debe usar los cmdlets de PowerShell. Agregar temporalmente a un grupo de seguridad desde el complemento gráfico de ADUC (dsa.msc
) no es apoyado.
Después de que se haya habilitado PAM, puede intentar agregar un usuario a un grupo de AD usando un argumento especial MemberTimeToLive del cmdlet Add-ADGroupMember. Es conveniente establecer el intervalo de tiempo (TTL) utilizando el New-TimeSpan cmdlet. Digamos que desea agregar al usuario test1 hacia Administradores de dominio grupo durante 15 minutos:
$ttl = New-TimeSpan -Minutes 5
Add-ADGroupMember -Identity "Domain Admins" -Members test1 -MemberTimeToLive $ttl
Puede comprobar cuánto tiempo un usuario será miembro del grupo mediante el cmdlet Get-ADGroup:Get-ADGroup 'Domain Admins' -Property member –ShowMemberTimeToLive
En los resultados del comando, puede ver una entrada como <TTL=187,CN=test1,CN=Users,DC=woshub,DC=loc>
para los miembros del grupo. El valor TTL se muestra en segundos. Esto significa que este usuario se ha agregado al grupo de administradores de dominio temporalmente. Después de 187 segundos, será eliminado automáticamente del grupo.
El ticket de usuario de Kerberos también caduca. Esto se implementa debido al hecho de que KDC emite un ticket con una vida útil igual al menor valor TTL para el usuario que tiene la membresía temporal en los grupos AD.
Puede verificar el próximo tiempo de renovación del ticket de Kerberos con el comando:
klist
La hora de la próxima renovación del billete TGT se muestra en el Renovar el tiempo parámetro.
Preste atención al usar escenarios híbridos con sincronización grupal desde Active Directory local a Azure AD a través de Azure AD Connect. Esta configuración debe tener en cuenta la configuración del intervalo de sincronización en la nube.
También en AD (con el nivel funcional de bosque de Windows2003Fores o más reciente), puede crear grupos de AD temporales. Para tales grupos, el dynamicObject se utiliza la clase. El proceso de recolección de basura de Active Directory realiza la eliminación automática de dichos grupos.
Por ejemplo, para crear un grupo temporal que se eliminará automáticamente después de un mes (2592000 = 31 * 24 * 60 * 60
), use el siguiente script de PowerShell:
$OU = [adsi]"LDAP://OU=Groups,OU=Munich,OU=DE,DC=woshub,DC=loc"
$Group = $OU.Create("group","cn=MUN-FS01_Public_tmp")
$Group.PutEx(2,"objectClass",@("dynamicObject","group"))
$Group.Put("entryTTL","2678400")
$Group.SetInfo()
Abra los atributos del grupo en la consola ADUC. Presta atención a entrada TTL atributo. Indica en cuántos segundos se eliminará este grupo de AD.
Anteriormente, para implementar una pertenencia temporal a un grupo de AD, tenía que usar objetos dinámicos, diferentes scripts y tareas programadas, o sistemas bastante complejos (Microsoft Forefront Identity Manager, etc.). Ahora, en Windows Server 2016/2019, esta práctica función está disponible de inmediato.