En este artículo, veremos cómo delegar permisos administrativos en el dominio de Active Directory. La delegación le permite otorgar permisos para realizar algunas tareas de administración de AD a usuarios de dominio común (no administradores) sin convertirlos en miembros de grupos de dominio privilegiados, como administradores de dominio, operadores de cuentas, etc. Por ejemplo, puede usar la delegación para otorgue a un determinado grupo de seguridad de AD (por ejemplo, Helpdesk) los permisos para agregar usuarios a grupos, crear nuevos usuarios en AD y restablecer las contraseñas de la cuenta.
Descripción de los permisos delegados de Active Directory
Para delegar permisos en AD, el Asistente de delegación de control en la consola Usuarios y equipos de Active Directory (DSA.msc).
Puede delegar privilegios administrativos en AD en un nivel bastante granular. Puede otorgar a un grupo el permiso para restablecer contraseñas en la unidad organizativa, otro, para crear y eliminar cuentas de usuario, y el tercero, para crear y cambiar la membresía del grupo. Puede configurar la herencia de permisos en las unidades organizativas anidadas. Los permisos se pueden delegar en Active Directory en los siguientes niveles:
- sitio de anuncio;
- Todo el dominio;
- Una unidad organizativa (OU) específica en Active Directory;
- Un objeto AD específico.
Mejores prácticas para el control de delegación en Active Directory:
- No se recomienda delegar (asignar) permisos directamente a cuentas de usuario específicas. En su lugar, cree un nuevo grupo de seguridad en AD, agréguele un usuario y delegue permisos en una OU para ese grupo. Si desea otorgar los mismos permisos a otro usuario, simplemente puede agregarlo a este grupo de seguridad;
- Evite el uso de permisos Denegar, ya que tienen prioridad sobre los permitidos;
- Auditar periódicamente los permisos delegados en el dominio (se puede crear un informe con las listas actuales de permisos por OU usando PowerShell);
- No conceda a nadie permisos para gestionar la unidad organizativa con las cuentas de administrador. De lo contrario, cualquier miembro del personal de soporte puede restablecer la contraseña del administrador del dominio. Todos los usuarios y grupos privilegiados deben colocarse en una unidad organizativa independiente que no esté sujeta a reglas de delegación.
Delegar restablecimiento de contraseña y desbloquear permisos de cuenta en AD
Imaginemos que su tarea es otorgar al grupo HelpDesk los permisos para restablecer contraseñas y desbloquear cuentas de usuario en el dominio. Creemos un nuevo grupo de seguridad en AD usando PowerShell:
New-ADGroup "HelpDesk" -path 'OU=Groups,OU=Paris,OU=Fr,dc=woshub,DC=com' -GroupScope Global
Agregue los usuarios que desee a este grupo:
Add-AdGroupMember -Identity HelpDesk -Members rdroz, jdupont
Ejecute el complemento mmc Usuarios y equipos de Active Directory (dsa.msc
), haga clic con el botón derecho en la OU con los usuarios (en nuestro ejemplo es ‘OU=Users,OU=Paris,OU=Fr,dc=woshub,DC=com’), y seleccione la Control delegado opción del menú.
Seleccione el grupo al que desea otorgar privilegios administrativos.
Seleccione uno de los conjuntos de privilegios preconfigurados (delegue las siguientes tareas comunes):
- Crear, eliminar y administrar cuentas de usuario;
- Restablecer contraseñas de usuario y forzar el cambio de contraseña en el próximo inicio de sesión;
- Leer toda la información del usuario;
- Crear, eliminar y administrar grupos;
- Modificar la pertenencia a un grupo;
- Administrar enlaces de directivas de grupo;
- Generar conjunto resultante de políticas (planificación);
- Generar conjunto resultante de políticas (registro);
- Crear, eliminar y administrar cuentas inetOrgPerson;
- Restablezca las contraseñas de inetOrgPerson y fuerce el cambio de contraseña en el próximo inicio de sesión;
- Lea toda la información de inetOrgPerson.
O crear una tarea personalizada para delegar. Elijo la segunda opción.
Seleccione el tipo de objetos de AD a los que desea otorgar permisos administrativos. Dado que queremos otorgar control sobre las cuentas de usuario, seleccione la Objeto de usuario artículo. Si desea otorgar los permisos para crear o eliminar usuarios en la unidad organizativa, seleccione las opciones Crear/Eliminar objetos seleccionados en esta carpeta. En nuestro ejemplo, no otorgamos tales privilegios.
En la lista de permisos, seleccione los que desea delegar. En nuestro ejemplo, seleccionaremos los privilegios para desbloquear cuentas de usuario (Leer lockoutTime y Escribir lockoutTime) y para restablecer una contraseña (Restablecer la contraseña).
Haga clic en Siguiente y confirme la delegación de los permisos seleccionados en la última pantalla.
Ahora, en una cuenta de usuario del grupo HelpDesk, intente restablecer una contraseña del usuario de la unidad organizativa de destino mediante PowerShell:
Set-ADAccountPassword gchaufourier -Reset -NewPassword (ConvertTo-SecureString -AsPlainText “P@ssdr0w1” -Force -Verbose) –PassThru
La contraseña debería restablecerse correctamente (si coincide con la política de contraseñas del dominio).
Ahora intente crear un usuario en esta unidad organizativa mediante el cmdlet New-ADUser:
New-ADUser -Name gmicheaux -Path 'OU=Users,OU=Paris,OU=FR,DC=woshub,DC=com' -Enabled $true
Debería aparecer un error de acceso denegado ya que no ha delegado los derechos para crear nuevas cuentas de AD.
Puede utilizar los registros de seguridad del controlador de dominio para auditar las acciones de los usuarios a los que ha delegado permisos administrativos. Por ejemplo, puede realizar un seguimiento de quién restableció una contraseña de usuario en el dominio, quién creó una cuenta de usuario en AD o realizar un seguimiento de los cambios en grupos confidenciales de AD.
Delegar permisos para unir computadoras al dominio AD
De forma predeterminada, cualquier usuario de dominio puede unir hasta 10 equipos al dominio. Al sumar los 11el computadora, aparecerá un error:
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.
Puede cambiar esta restricción a nivel de todo el dominio aumentando el valor de la ms-DS-MachineAccountQuota atributo. O (lo que es más correcto y seguro) delegando los permisos para unir computadoras a una unidad organizativa determinada a un grupo de usuarios específico (servicio de asistencia). Para ello, delega los permisos para crear objetos de Objetos de computadora escribe. En el asistente de delegación de control, seleccione Crear objetos seleccionados en esta carpeta.
Seleccione Crear todos los objetos secundarios en la sección de Permisos.
Si desea delegar el derecho de mover objetos entre unidades organizativas en AD, debe otorgar los siguientes permisos: Eliminar objetos de usuario, Escribir nombre distinguido, Escribir nombre (**), Crear objetos de usuario (o computadora).
¿Cómo ver y eliminar permisos delegados en Active Directory?
Se puede asignar cualquier número de reglas de delegación a una unidad organizativa en AD. Puede obtener una lista de grupos y los permisos que se les han delegado en las propiedades de la OU en la consola ADUC. Ve a la Seguridad pestaña.
Contiene una lista de sujetos de AD a los que se les han otorgado permisos para este contenedor. Puede ver la lista de permisos concedidos en la Avanzado pestaña. Como puede ver, el grupo HelpDesk puede restablecer contraseñas.
Puede revocar un grupo específico de permisos administrativos previamente asignados a través de la delegación. Busque el nombre del grupo al que delegó permisos y haga clic en Remover.
Además, en el Seguridad -> Avanzado pestaña puede asignar manualmente permisos delegados a diferentes grupos de seguridad.
¿Cómo delegar permisos en Active Directory con PowerShell?
Puede obtener una lista de permisos que se delegan a la unidad organizativa o cambiar los permisos actuales mediante PowerShell. los Get-ACL
y Set-ACL
Los cmdlets se usan para ver y cambiar los permisos en Active Directory (los mismos cmdlets de PowerShell se usan para administrar los permisos de NTFS en archivos y carpetas).
La siguiente secuencia de comandos simple enumerará todos los permisos no estándar que se delegan a una unidad organizativa específica en AD:
# get the OU
$OUs = Get-ADOrganizationalUnit -Filter 'DistinguishedName -eq "OU=Users,OU=Paris,DC=woshub,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
Puede obtener el informe de permisos delegados con un cmdlet gráfico Out-GridView:
$report| where {($_.IdentityReference -notlike "*BUILTIN*") -and ($_.IdentityReference -notlike "*NT AUTHORITY*") }| Out-GridView
O exporte la lista de permisos a un archivo CSV para su posterior análisis en Excel (puede escribir datos directamente en un archivo de Excel desde un script de PowerShell):
$report | Export-Csv -Path "C:reportsAD_OU_Permissions.csv" –NoTypeInformation
El informe resultante muestra que al grupo HelpDesk se le han delegado los permisos para restablecer las contraseñas de los usuarios (ObjectTypeName=User-Force-Change-Password) en la unidad organizativa.
Puedes usar el dsacls herramienta para delegar derechos a una unidad organizativa. Por ejemplo:
dsacls "ou=users,ou=paris,dc=woshub,dc=com" /I:S /G "WOSHUBHELPDESK:CA;Reset Password;user" "WOSHUBHELPDESK:WP;pwdLastSet;user" "WOSHUBHELPDESK:WP;lockoutTime;user
También puede asignar permisos al contenedor Unidad organizativa mediante PowerShell (en este ejemplo, se delegan los permisos para restablecer la contraseña):
$ou = "AD:OU=users,OU=Paris,DC=woshub,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
Del mismo modo, puede delegar otros permisos a los contenedores organizativos de AD mediante PowerShell.
Artículos Interesantes
Contenido