Windows Server: Grupos y Usuarios Temporarios

Todos conocemos, eso creo, que a las cuentas de usuario se les puede poner una fecha de expiración. Esto se usa fundamentalmente para usuarios temporarios para que luego de una fecha determinada la cuenta se desactive automáticamente

Pero en algunas ocasiones se necesita algo más específico, por ejemplo que una cuenta dure sólo unos minutos o algunas horas, o aún a una hora determinada sea eliminada

Inclusive esto que demostraré, se puede hacer sobre grupos, que no muestra cómo asignarle un día y hora determinados como límite de uso

Me he sorprendido, pues leo que está disponible desde Windows Server 2003. No lo conocía

Primero que nada veamos algunas de las características propias de estos Objetos Dinámicos (“Dynamic Objects”) como son identificados por Microsoft

  • Un Objeto Dinámico, una vez expirado es definitivamente borrado, esto es, no queda como “tombstoned” como sucede con los objetos normales cuando son eliminados
  • Esta clase de objetos está soportado en todas las particiones, excepto las de Configuración y Esquema, o sea sólo en la del Dominio o auxiliares que hubiéramos creado
  • Active Directory no publica en ROOT-DSE el atributo “dynamicSubtrees como indica la RFC2589
  • Estos Objetos Dinámicos se comportan en la forma normal durante los procesos de búsqueda, modificación, borrarado, etc.
  • No hay forma de cambiar un “Objeto Normal” a Objeto Dinámico, o a la inversa
  • Un Objeto Dinámico no puede tener una entrada “no dinámica”

 

La infraestructura que utilizaré, ya que es sólo para efectos demostrativos, y cada uno verá si le es de utilidad en su propio ambiente, consistirá sólo de una máquina, el Controlador de Dominio que uso para todas las notas (DC1.AD.GuillermoD.com.ar)

Por si alguien tuviera dudas muestro en las propiedades de usuario que podemos asignarle a la cuenta fecha de expiración (deshabilitar la cuenta), pero no la hora

Crearé una Unidad Organizativa llamada Temporales para ubicar las cuentas temporales, un usuario y un grupo, que usaré durante la demostración

También he creado en el disco una carpeta que llamé Prueba, donde crearé los archivos necesarios para la creación de estos “Dynamic Objects”, un usuario y un grupo

Para lograr este objetivo, aunque se puede hacer con PowerShell (dejo la búsqueda a cada uno) yo lo haré mediante el conocido LDIFDE.EXE

Para lo cual he creado dos archivos de texto en formato LDIF como muestro en las siguientes figuras

Uno para crear la cuenta de usuario

Y otro para crear la cuenta de grupo

Observen dos cosas en estos archivos

  1. El “dn” (“Distinguished Name”) debe indicar además del nombre, una Unidad organizativa existente
  2. El “entryTTL” corresponde a la cantidad de tiempo en segundos a contar desde la creación de la cuenta. Yo he usado tiempo muy corto a fin de no esperar durante esta nota :)

Luego mediante LDIFDE.EXE importamos ambos archivos

Aunque parece que no sucedió nada, debemos refrescar el contenido de la Unidad Organizativa

La cuenta de usuario, queda deshabilitada, así que le asigno una contraseña y luego habilito la cuenta en la forma habitual (botón derecho …)

Activando la opción “View / Advanced features” podemos ver los atributos de cada objeto creado

El atributo “entryTTL” es el tiempo de vida que le queda, que como podemos ver ya ha comenzado a disminuir

Y por otro lado, el atributo “msDS-Entry-Time-To-Die” muestra el momento en que la cuenta será borrada. Observen la diferencia entre tiempo local y tiempo UTC

A estas cuentas se les puede asignar permisos sobre carpetas. He creado una carpeta Permisos, a la cual he asignado permisos tanto al usuario como al grupo ya que quería ver qué sucedía una vez que las cuentas eran eliminadas

Y quedan rastros

Al ser sólo una demostración no me he tomado el trabajo de esperar las 12 horas del tiempo de «garbage collection» para ver si el sistema eliminaba ambas entradas, pero estoy casi seguro que no lo hará, y habrá que hacerlo manualmente

 

Esto ha sido sólo una demostración de una opción que personalmente no conocía y que seguramente a alguien le pueda servir en algún momento

 

Publica un comentario o deja una referencia: URL de la referencia.

Comentarios

  • Esteban  El 09/05/2016 a las 17:09

    Muy bueno Guille… en Windows 2016 se esperan mas novedades con este tema y para que una cuenta expire a una hora en particular… podes usar PowerShell !!! :)

    Set-ADAccountExpiration -Identity NombreUsuario -DateTime ’15/05/2016 14:30:00′

    • Guillermo Delprato  El 09/05/2016 a las 18:50

      Hola Esteban, sí, prácticamente todo se puede hacer con PowerShell, y más, a futuro todo se hará por PowerShell :)

Este espacio es para comentarios sobre la nota. No es un sitio de soporte

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

A %d blogueros les gusta esto: