1.2K
Los grupos de Active Directory hacen que administrar el acceso y asignar permisos en un dominio sea mucho más manejable. Puede agregar un grupo de AD a otros. Estos se llaman grupos anidados de Active Directory. Los grupos anidados son una forma conveniente de administrar el acceso en AD en función de los roles comerciales.
Pero, al diagnosticar problemas de permisos, los administradores pueden encontrar que los grupos anidados son la fuente del problema. A menudo surgen problemas con los grupos anidados cuando se diagnostican reglas de acceso denegadas y políticas de grupo.
En este artículo, le mostraremos cómo determinar de qué grupos anidados es miembro un usuario. También mostraremos cómo obtener los miembros anidados de un grupo.
Membresía directa frente a grupo de AD anidado
En Active Directory, la pertenencia a grupos se puede administrar de dos formas principales: pertenencia a grupos directa y pertenencia a grupos anidados. Permítanme explicar cada uno de ellos.
Membresía de grupo directo
La pertenencia directa a un grupo se refiere a agregar cuentas de usuario individuales directamente a un grupo. Con este método, los usuarios se agregan explícitamente como miembros de un grupo. Los usuarios que se agregan directamente a un grupo obtienen los permisos y derechos de acceso asociados con ese grupo.
Por ejemplo, de Daniel Taylor “Miembro deLa propiedad de usuario muestra que es miembro directo de cuatro grupos: CA DevOps, Administradores del servidor de CA, Administradores de usuarios de CAy Usuarios de dominio.
Este método es simple, pero puede volverse engorroso de administrar si tiene requisitos de control de acceso complejos o una gran cantidad de usuarios.
Membresía de grupo anidado
La pertenencia a grupos anidados implica agregar grupos como miembros de otros grupos. Con este método, puede crear una jerarquía de grupos donde los grupos se pueden anidar unos dentro de otros. Los usuarios se agregan a los grupos anidados y, por extensión, heredan los permisos y derechos de acceso de los grupos principales.
Este enfoque proporciona una forma más flexible y escalable de gestionar la pertenencia a grupos. Los cambios en la pertenencia a grupos en los niveles superiores de la jerarquía pueden propagarse automáticamente a los grupos anidados, lo que simplifica la gestión.
El desafío con la pertenencia a grupos anidados es que no puede ver fácilmente la jerarquía con la herramienta habitual: el complemento Usuarios y equipos de Active Directory (dsa.msc). Debe abrir cada grupo para saber si es miembro de otro grupo y así sucesivamente.
El siguiente ejemplo muestra que Daniel Taylor es miembro directo de cuatro grupos, incluidos Administradores del servidor de CA. Al abrir cada grupo, encontrará que es un miembro de otro grupo. La cuenta de Daniel Taylor está anidada en tres grupos de Active Directory en este caso.
Las organizaciones medianas y grandes pueden tener cientos o miles de grupos de AD, que se pueden anidar en varias capas de otros grupos de AD. Imagine el esfuerzo que supondría buscarlos todos de esta manera.
Pero no te preocupes; hay formas de encontrar miembros y membresías de grupos anidados de Active Directory, y le mostraremos cómo hacerlo.
Encuentre miembros de grupos anidados de Active Directory con DSGET
El dsget command es una herramienta de línea de comandos específica para los sistemas operativos Windows Server. Se utiliza para recuperar propiedades específicas de objetos dentro del dominio de Active Directory.
La sintaxis para el dsget el comando es el siguiente:
dsget <object> <objectDN> [-<attribute>]
Siguiendo esa sintaxis, puede consultar un usuario o grupo objetar y devolver su miembros de miembro de atributos
Buscar la pertenencia a un grupo anidado de un usuario
Ejecutemos este comando para obtener las membresías de grupo directas de Daniel Taylor. El -miembro de El interruptor al final representa el atributo que queremos recuperar.
dsget user "CN=Daniel Taylor,OU=Users,OU=California,OU=USA,DC=theitbros,DC=com" -memberof
El siguiente resultado muestra solo las pertenencias directas a grupos del usuario. Puede ver en este ejemplo que el usuario es miembro de cuatro grupos de AD.
Añade el -expandir cambie al mismo comando para incluir los grupos AD anidados.
dsget user "CN=Daniel Taylor,OU=Users,OU=California,OU=USA,DC=theitbros,DC=com" -expand -memberof
El resultado incluirá las pertenencias a grupos de AD anidados. Esta vez, el resultado muestra siete grupos AD.
Buscar los miembros del grupo anidado de un grupo
Esta vez, usemos dsget para buscar los miembros del grupo anidado de un grupo principal. El siguiente comando recupera el directo Los miembros de la Operaciones de TI de EE. UU. grupo de seguridad.
dsget group 'CN=USA IT Ops,OU=USA,DC=theitbros,DC=com' -members
El comando devolvió los miembros directos del grupo porque usamos el -miembros cambiar para recuperar el miembros atributo.
Debes agregar el -expandir cambiar para incluir los miembros del grupo anidado.
dsget group 'CN=USA IT Ops,OU=USA,DC=theitbros,DC=com' -expand -members
Encuentre miembros de grupos anidados de Active Directory con PowerShell
El módulo de Active Directory de PowerShell contiene cmdlets para administrar Active Directory. Algunos de estos cmdlets son útiles para obtener miembros y miembros de grupos anidados de Active Directory.
Buscar la pertenencia a un grupo anidado de un usuario
El módulo Active Directory PowerShell no tiene un único cmdlet para obtener las pertenencias a grupos directas y anidadas de un usuario. El Obtener ADUser cmdlet devuelve el objeto de usuario de AD y su Miembro de propiedad que contiene sus pertenencias directas al grupo.
(Get-ADUser dtaylor -Properties memberof).MemberOf
Si también prefiere enumerar los grupos de miembros anidados, incluso los vacíos, debe usar la opción de filtro LDAP extensible especial LDAP_MATCHING_RULE_IN_CHAIN (1.2.840.113556.1.4.1941). Este filtro encuentra grupos anidados y busca una coincidencia a lo largo de toda la cadena desde la raíz (disponible a partir de Windows Server 2003 SP2).
En Active Directory, LDAP_MATCHING_RULE_IN_CHAIN (1.2.840.113556.1.4.1941) es una regla de coincidencia utilizada en las búsquedas del Protocolo ligero de acceso a directorios (LDAP). Está diseñado explícitamente para consultar la membresía recursiva en grupos de Active Directory.
Al realizar una búsqueda LDAP regular, el comportamiento predeterminado es buscar objetos que coincidan directamente con los criterios especificados. Pero, con LDAP_MATCHING_RULE_IN_CHAIN, la búsqueda se amplía para incluir el objeto de destino y cualquier objeto anidado dentro de él.
Esto le permite encontrar objetos que son miembros de un grupo específico, directa o indirectamente, a través de la pertenencia a grupos anidados.
Por ejemplo, ejecute el siguiente comando para encontrar todas las membresías de grupo directas e indirectas de la cuenta de usuario de Daniel Taylor. Este comando utiliza el Get-ADGroup cmdlet y aplica el Filtro LDAP parámetro.
Get-ADGroup -LDAPFilter "(member:1.2.840.113556.1.4.1941:=CN=Daniel Taylor,OU=Users,OU=California,OU=USA,DC=theitbros,DC=com)" | Select-Object Name, DistinguishedName
El resultado ahora muestra todas las pertenencias a grupos directas e indirectas del usuario.
Buscar los miembros del grupo anidado de un grupo
El Get-ADGroupMember cmdlet enumera los miembros de un grupo de Active Directory. Por ejemplo, este comando enumera los Operaciones de TI de EE. UU. miembros del grupo.
Get-ADGroupMember -Identity 'USA IT Ops' | Select-Object Name,objectClass,distinguishedName
Pero la salida solo muestra los miembros directos.
Agregue el interruptor -Recursivo al comando para mostrar los miembros anidados.
Get-ADGroupMember -Identity 'USA IT Ops' -Recursive | Select-Object name,objectClass,distinguishedName
Notará que el resultado muestra solo los objetos AD sin objetos secundarios. En este caso, el resultado solo mostraba la cuenta de usuario. No habrá información sobre grupos anidados entre los resultados de salida.
Pero eso no significa que no podamos mostrar los grupos anidados. Necesitamos ser creativos con el uso de PowerShell. En este ejemplo, vamos a crear una función de PowerShell llamada Get-AdGroupNestedMember.
Copie el código a continuación, péguelo en su ventana de PowerShell y presione Entrar. También puede descargar este código de este Esencia.
Function Get-AdGroupNestedMember {
[CmdletBinding()]
param (
[Parameter(Mandatory)]
[Microsoft.ActiveDirectory.Management.ADGroup]
$Identity,
[Parameter()]
[switch]
$ShowTop
) try {
$group = Get-ADGroup -Identity $Identity -ErrorAction Stop
if ($ShowTop) {
$group
}
$members = Get-ADGroupMember $group -ErrorAction Stop
# Loop through the members
foreach ($member in $members) {
# Check if the member is a group
if ($member.objectClass -eq "group") {
# Recursively call the function for nested groups
Get-AdGroupNestedMember -Identity $member.Name -ShowTop
}
else {
# Output
$member
}
}
}
catch {
$_.Exception.Message | Out-Default
return $null
}
}
Una vez el Get-AdGroupNestedMember se agrega la función a su sesión, ejecute el siguiente comando para llamar a la función. Este ejemplo obtendrá todos los directos e indirectos anidados Operaciones de TI de EE. UU. miembros del grupo.
Get-AdGroupNestedMember -Identity 'USA IT OPS' | Select-Object Name,ObjectClass,DistinguishedName
Ahora tiene un contenedor de PowerShell para buscar miembros de grupos anidados de Active Directory.
Conclusión
Encontrar y administrar miembros de grupos anidados de Active Directory es crucial para los administradores que buscan administrar de manera eficiente el acceso y los permisos de los usuarios dentro de sus organizaciones. Esta publicación de blog mostró cómo puede navegar fácilmente a través de estructuras de grupos anidados y producir una lista completa de todos los miembros, incluidos los anidados en lo profundo de la jerarquía.
Exploramos diferentes métodos para encontrar miembros de grupos anidados, comenzando con enfoques manuales mediante comandos de PowerShell y consultas LDAP. Si bien estos métodos requieren cierta experiencia técnica, ofrecen flexibilidad y opciones de personalización.
Con el conocimiento y las herramientas adecuadas a su disposición, encontrar miembros de grupos anidados de Active Directory se convierte en una tarea realizable y manejable. Al aprovechar los comandos de PowerShell y las consultas LDAP, los administradores pueden obtener una visibilidad completa de las membresías de grupos, mejorar la seguridad y ayudar a diagnosticar problemas relacionados con permisos en Active Directory.











