Resetear password de Directory Manager en OpenDJ LDAP

Si hemos perdido u olvidado la contraseña del «Directory Manager» en OpenDJ LDAP, la forma más rápida de volver a tener acceso de administrador es resetear o regenerar la password en lugar de intentar recuperarla.

Para regenerar la contraseña debemos parar el servicio de OpenDJ:

# /etc/init.d/opendj stop

Si no disponéis de script de arranque en /etc/init.d/, lo paráis del siguiente modo:

# $OPENDJ_HOME/bin/stop-ds

OpenDJ cuenta con una herramienta llamada «encode-password» que permite cifrar la contraseña que le pasemos en claro, especificando el StorageScheme con el que queramos cifrar y almacenar la contraseña:

# $OPENDJ_HOME/bin/encode-password -s SSHA512 -c NUEVA_PASSWORD
Encoded Password:  "{SSHA512}8FtazwsEzaV59X6Tn4APEsqZ5QrdW2WRRbatyHWODxPAm0E35Tpik808E9SpnlS7fSwAJZUG/KiZMEOD+C9LGpUBWZZDE1j7"

Como tenemos el servidor de OpenDJ detenido, podemos sustituir la contraseña almacenada en el archivo de configuración config.ldif por la nueva y después, al reiniciar el servicio ya podremos acceder con la nueva password:

La entrada en la que tenemos que modificar el atributo userpassword es la del «Directory manager»:

dn: cn=Directory Manager,cn=Root DNs,cn=config
objectClass: person
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: ds-cfg-root-dn-user
objectClass: top
userpassword: {SSHA512}8FtazwsEzaV59X6Tn4APEsqZ5QrdW2WRRbatyHWODxPAm0E35Tpik808E9SpnlS7fSwAJZUG/KiZMEOD+C9LGpUBWZZDE1j7
givenName: Directory
cn: Directory Manager
ds-cfg-alternate-bind-dn: cn=Directory Manager
sn: Manager
ds-pwp-password-policy-dn: cn=Root Password Policy,cn=Password Policies,cn=config
ds-rlim-time-limit: 0
ds-rlim-lookthrough-limit: 0
ds-rlim-idle-time-limit: 0
ds-rlim-size-limit: 0

Una vez realizado, iniciamos OpenDJ:

# /etc/init.d/opendj start

Si no disponéis de script de arranque en /etc/init.d/, lo arrancáis del siguiente modo:

# $OPENDJ_HOME/bin/start-ds

Ya deberíais poder acceder con la nueva contraseña

# $OPENDJ_HOME/bin/dsconfig -h localhost -D "cn=Directory Manager" 

Password for user 'cn=Directory Manager': NUEVA_PASSWORD