Otro de los nuevos Chiches de Active Directory de Longhorn server, password a nivel user o group

Dentro de las nuevas caracteristicas mas novedosas de Active Directory de Longhorn Server se encuentra la posibilidad de configurar passwords de dominio a nivel usuario o grupo global.

Recordemos que hasta Windows Server 2003, solo era posible  configurar una unica politica de seguridad de passwords a nivel dominio y que esta abarcaba a cualquier security principal que estuviese dentro de ese dominio.

Si bien esto era asi por definicion de dominio: limite de seguridad, limite de replicacion, esto daba poca flexibilidad a la hora de necesitar diferentes politicas de seguridad. De hecho la unica manera (legal) de hacerlo era, un dominio por cada politica de seguridad de password.

¿Entonces, como se implemento esta nueva caracteristica?

A primera vista, al examinar y probar el Nuevo Active Directory no se notan grandes cambios a este respecto, si asigno una politica de seguridad de cuentas a nivel OU el comportamiento sera identico a Windows 2003, lo ignorara para las cuentas de dominio, lo aplicara a las cuentas locales de los objetos computer que residan en dicha OU.

El asunto esta un poco mas encubierto.

Antes de comenzar: Esto esta analizado sobre Longhorn Server Beta, lo que significa que todo lo que sigue puede cambiar mucho, poquito o nada cuando salga RTM

Comencemos por examinar el esquema de de Active Directory de LonghornServer.

Notaremos que hay un nuevo objeto: msDS-PasswordSettings, y ésta es la clave del asunto.

Este nuevo objeto tiene 10 atributos mandatorios y unos cuantos mas opcionales, los mandatorios deberan completarse a la hora de instanciar este objeto. Veamos cuales son y que significan

Atributos de password

msDS-PasswordHistoryLength: Este define cuantas paswords deberan pasar hasta que el usuario pueda reutilizar las anteriores

msDS-PasswordSettingsPrecendence: este es un simple valor interger que mantiene una precedencia si varias configuraciones de password afectan al mismo objeto. Este numero permite jugar cuando las configuraciones son mas exigentes o menos exigentes, el valor de este atributo definira cual tiene precedencia sobre los demas.

msDS-PasswordReversibleEncryptionEnabled: Este atributo es booleano y define la reversibilidad o no de la encripcion de la password, a menos que algun escenario de interoperabilidad lo exiga,conviene dejarlo en FALSE

msDS-PasswordComplexityEnabled: Atributo booleano que define si se exigira compeljidad o no.

msDS-MinimumPasswordLength: Aca definimos cuantos caracteres minimos exigiremos a la password

msDS-MinimumPasswordAge: Tiempo minimo que una pasword debe permanecer asociada a un security princiapal antes que esta pueda ser cambiada, (esta configuracion es importante a la hora de preservar la configuracion de historia). Este numero debe ser negativo y pueden calcularse mediante los metodos explicados aca: https://msdn2.microsoft.com/en-us/library/ms974598....

msDS-MaximumPasswordAge: Atributo similar al anterio pero que define el tiempo maximo permitido parausdar la actual password, pasado ese tiempo el usuario estara obligado a renovarla. Aplican las mismas normas que para msDS-MinimumPasswordAge

Atributos de bloqueo de cuentas

msDS-LockoutThreshold: Establece cuantos intentos podran hacerse antes que la cuenta se bloquee.

msDS-LockoutDuration: Define cuanto tiempo estara bloqueda la cuenta luego de alcanzar msDS-LockoutThreshold

msDS-LockoutObservationWindow: Establece cuanto tiempo tardara el contador de intentos fallidos se tomara para resetearse.

Bien, ¿y como se hace la magia?

Vamos autilizar para este experimento un Active Directory ya configurado DC=ponicke, DC=ad

dentro de CN=Password Settings Container, CN=Sytem, DC=ponicke, DC=ad crearemos un nuevo objeto del tipo msDS-PasswordSettings

Para luego comenzar a completar los atributos mandatorios mas su Common Name:

Bien, revisemos lo hecho hasta aca. Al crear el nuevo ojbeto msDS-PasswordSettings, tuvimos que indicarle los atributos mandatorios. En este ejemplo y al solo hecho de contrastar con la Default Domain Policy, hice una con casi ninguna exigencia, a saber:

Nombre: Nocomplex, Precendencia: 20, Encripcion no reversible, Historia: 4, sin complejidad, sin largo minimo, sin edad minima, 42 dias de tiempo maximo, 4 intentos antres de bloquearla, 6 minutos para liberar el contador de fallidos y 6 minutos para desbloquear la cuenta, finalmente nos propone indicarle atributos opcionales (no utilizados en este ejemplo) por lo que se procedio a finalizar.

Nos queda algo asi:

Para este ejemplo hemos creado un grupo global Ventas al cual aplicaremos esta configuracion, por lo cual cualquier usuario que pertenezca al grupo global Ventas recibira como politicas de seguridad de passwords las configuraciones arriba citadas en lugar de las asignadas en la Default Domain Policy.

Esto se hace mediante el atributo msDS-PSOAppliesTo asignadole el ldap del grupo ventas: CN=Ventas,CN=Users,DC=ponicke,DC=ad

Listo!.

La idea aca es configurar un msDS-PasswordSettings por cada necesidad de politicas de passwords,digamos uno para usuarios estandar, otro para desarrolladores, otro para administraodres, otro para directivos, etc y luego mediante un sencillo script de VB asignar los grupos globales correspondientes al msDS-PSOAppliesTo de cada msDS-PasswordSettings .

un lujo!