Una capacidad muy importante de Active Directory es la habilidad de poder delegar en forma muy granular algunas tareas administrativas en usuarios que no pertenezcan a alguno del los grupos con poderes administrativos irrestrictos, como por ejemplo los administradores
En una organización muy chica probablemente no se haga delegación de tareas, pero es algo casi imprescindible en grandes organizaciones, ya que no todo el que tenga que ejecutar alguna tarea administrativa tiene que tener los “super poderes” de un administrador
A veces, sobre todo en las medianas, no se delegan tareas por desconocimiento de su funcionamiento
Es una opción muy poderosa, que permite delegar definiendo:
- Qué tarea/s se delegará o delegarán
- Sobre qué tipo de objetos (usuarios, grupos, GPOs, unidades organizativas, etc.)
- Sobre qué partes del Dominio (unidades organizativas, el Dominio, etc.)
Esto también responde a una consulta que se escucha con frecuencia: “que sea administrador, pero que no pueda …”. Lo cual es imposible, ya que si pertence al grupo de Administradores (“Administrators”) no hay forma de quitarle privilegios sobre la máquina o el Dominio
Veremos una demostración muy simple, donde sólo es necesario una máquina Controlador de Dominio
En un ambiente de Active Directory, cada objeto, y en realidad cada propiedad de cada objeto tiene una Lista de Control de Acceso (ACL = Access Control List) que determina quién y qué puede hacer con cada elemento
Lo anterior está definido por omisión cuando se crea un Dominio, y está establecido en el Esquema (“Schema”) pero no es algo que no pueda cambiarse, aunque no absolutamente todos los objetos, para preservar la integridad
El sistema, por omisión no muestra la ficha de Seguridad de cada objeto, pero si por ejemplo en Usuarios y Equipos de Active Directory (“Active Directory Users and Computers”) habilitamos la opción “View / Advanced Features”, e ingresamos a las propiedades de un objeto, veremos quien tiene, y qué permisos tiene sobre el objeto
IMPORTANTE: no hacer cambios si uno no conoce exactamente cuáles serán las consecuencias de un cambio
Para poder hacer la demostración, en el Dominio que utilizo siempre para estas notas he creado cuatro Unidades Organizativas, que sólo por comodidad y para que aparezcan juntas al principio le he puesto el prefijo “_”. Una para usuario, otra para grupos, y otra para máquinas. La cuarta (“_IT”) ha sido para crear una cuenta de usuario (“Admin Uno”) que pertence a un grupo (“IT-Grupo”) al cual le delegaré tareas
Para no tener que utilizar otra máquina, modifiqué la “Default Domain Controllers Policy” permitiendo que este usuario normal pueda inciar sesión en un Controlador de Dominio, aunque por supuesto esto no es recomendable en un ambiente productivo
Para comenzar con algo sencillo, delegaré sobre la Unidad Organizativa “_Usuarios” que los que pertenezcan al grupo IT-Grupo puedan crear cuentas de usuario. Lo haré a través del asistente de delegación, según muestran las siguientes pantallas
Agregamos al grupo en cuestión
Podemos ver que ya hay algunas tareas predefinidas, comenzaremos por una de estas por su sencillez, y luego veremos las personalizadas. En este caso recuerdo que estamos delegando la administración de usuarios
Ahora iniciaré sesión con “Admin Uno” y veremos si puede crear una cuenta de usuario en la Unidad Organizativa sobre la que se hizo la delegación
No pongo todas las pantallas porque supongo que nadie tendrá dificultades en crear una cuenta de usuario, pero podemos observar que puede efectuar la tarea delegada perfectamente
Si trata de crear una cuenta de máquina, que no fue delegada, no podrá
Ya que no fue una tarea delegada, tampoco podrá incluir al usuario en un grupo; debería delegarle permisos sobre el grupo para que pueda hacerlo
Volvamos a iniciar sesión con la cuenta de administrador, y en Usuarios y Equipos de Active Directory (“Active Directory Users and Computers”), activemos la opción “View / Advanced Features”. Luego ingresemos a las propiedades de la Unidad Organizativa, y en la ficha “Security” podremos ver que se ha incluido al grupo al que delegamos con “Special Permissions”
Ingresando por el botón “Advanced” podremos ver que el grupo tiene permisos para crear y borrar cuentas de usuario
Para continuar la demostración, en forma análoga a la delegación anterior, ahora lo haremos sobre la Unidad Organizativa “_Grupos”, pero delegando la administración de grupos.
Observen que se activan dos entradas que podrían activarse independientemente, una es la creación de grupos, y la otra la membresía en los grupos
Inciando sesión con “Admin Uno” podemos observar que puede crear grupos sobre la Unidad Organizativa donde se delegó
Pero como es lógico, sólo podrá crear grupos en la Unidad Organizativa “_Grupos”, y no en otras
Supongamos que deseamos delegar la creación de cuentas de máquina, sobre la Unidad Organizativa “_Maquinas”. Esta no es una tarea predefinida, así que aunque los pasos inciales son los mismos, ahora debemos crear una tarea personalizada
Seleccionamos “Computer objects” y le asignamos para que pueda crear y borrar cuentas de este tipo
Aunque yo para mantener simple esta demostración le otorgaré permiso de control total, observen que se podrían manejar los permisos hasta a nivel de cada propiedad del objeto
Si iniciamos sesión con “Admin Uno” veremos que puede sin ningún inconveniente crear cuentas de máquina en la Unidad Organizativa donde se le delegó el privilegio
Y por supuesto, también borrar
Por último vamos a mostrar una delegación más, y cómo el sistema nos protege. Supongamos que luego de uno de esos días complicados que todo administrador tiene, decidimos delegar en otra persona la posibilidad de cambiar contraseñas y administrar los grupos, pero a nivel de Dominio, o sea que se aplicará a todo el Dominio
¿Se dan cuenta del problema? ¿y si nos cambia la contraseña a nuestro administrador? ¿o si se incluye en uno de los grupos administradors? Estaríamos en un problema grave si esto fuera así, pero el sistema nos protege
Hagámoslo y probemos
Iniciamos como administrador del Dominio y ejecutemos la delegación a nivel de Dominio como muestra la captura
Ahora iniciemos sesión con “Admin Uno” y tratemos de hacer algo indebido 🙂
Tranquilos, no puede
¿Y membresía en grupos administrativos?
Tampoco puede
Aunque sí podrá hacerlo sobre los grupos no protegidos
Sobre los grupos protegidos, las opciones de agregar o quitar le aparecerán deshabilitadas
Como hemos podido observar es muy fácil delegar tareas sobre determinados tipos de objetos, y sobre partes definidas de un Dominio, espero lo utilicen para las tareas que no tienen significancia especial desde el punto de vista seguridad
Inclusive, lean también la nota “La Vista del Cuadro de Tareas (“Taskpad Views”) ¿Sabe Qué Es y Como Crearlas” para ver cómo podemos crear vistas simplificadas para estos delegados
Un comentario importarte a tener en cuenta: el asistente de delegación sirva para agregar permisos, pero no sirve para quitar o modificar permisos; ni el sistema tiene una aplicación sencilla gráfica para documentar los permisos, o identificar los modificados. Por lo tanto, es importante documentar la información de delegación (dónde, a quién, por qué, etc.)
Para el que desee profundizar el tema de los grupos protegidos les dejo unos enlaces con buena información (en inglés)
Hasta Windows Server 2008 R2: AdminSDHolder, Protected Groups and SDPROP:
Y para Windows Server 2012 en adelante:
- Protected Users Security Group:
http://technet.microsoft.com/en-us/library/dn466518.aspx - Detecting members of Protected Groups within AD:
http://everythingsysadmin.wordpress.com/2013/07/16/detecting-members-of-protected-groups-within-ad/