Semanas atrás estaba trabajando en la migración de casillas de correo a un servidor nuevo basado en ZIMBRA. Se quiere que los usuarios autentiquen en el nuevo sistema con sus passwords actuales. Las passwords actuales están encriptadas con el algoritmo MD5, almacenadas en una base de datos MySQL. En Zimbra se utiliza "autenticación interna", las claves se almacenan en OpenLDAP (atributo userpassword).
Zimbra encripta las passwords con el algoritmo SSHA, pero admite passwords con otros algoritmos. Queriendo migrar las password de un sistema a otro, nos encontramos que era necesario recodificar las passwords almacenadas en la base datos, para que pudieran ser utilizadas con exito. OpenLDAP almacena las passwords en un formato binario, codificado en base64. Aquí se discute esto, con ejemplos en PHP. Y en este mensaje de una lista de OpenLDAP encontramos la razón de nuestro problema y un script de conversión.Copio acá el script:
Zimbra encripta las passwords con el algoritmo SSHA, pero admite passwords con otros algoritmos. Queriendo migrar las password de un sistema a otro, nos encontramos que era necesario recodificar las passwords almacenadas en la base datos, para que pudieran ser utilizadas con exito. OpenLDAP almacena las passwords en un formato binario, codificado en base64. Aquí se discute esto, con ejemplos en PHP. Y en este mensaje de una lista de OpenLDAP encontramos la razón de nuestro problema y un script de conversión.Copio acá el script:
#-------------------------------------------#
#!/usr/bin/perl
use MIME::Base64;
use strict;
my @md5 = split "",$ARGV[0];
my @res;
for (my $i = 0 ; $i < 32 ; $i+=2)
{
my $c = (((hex $md5[$i]) << 4) % 255) | (hex $md5[$i+1]);
$res[$i/2] = chr $c;
}
print "{MD5}".encode_base64(join "", @res);
#-------------------------------------------#
Cambiar la contraseña encryptada en Zimbra
Solo nos resta cambiar en la cuenta de zimbra la contraseña y poner la que acabamos de recodificar. Esto se hace desde linea de comandos, corriendo zmprov con el usuario zimbra:zmprov ma usuario@dominio userPassword 'X03MO1qnZdYdgyfeuILPmQ=='
No hay comentarios:
Publicar un comentario